GNU/Linux >> Tutoriels Linux >  >> Linux

Caractères de fin et caractères génériques

Solution 1 :

Je pense que vous voudriez :

tail -n 10 *-access.log

Quant à pourquoi :
Je ne pense pas que cela ait quelque chose à voir avec le globbing :

tail -10 foo-access.log arf-access.log 
tail: option used in invalid context -- 1

Je pense qu'il se trouve que votre glob se développe en un seul fichier. Cela a probablement quelque chose à voir avec certaines options archaïques d'analyse que je suis trop paresseux pour essayer de lire, mais si vous voulez vraiment savoir, regardez dans tail.c dans le source coreutils et décortiquez la fonction suivante :

parse_obsolete_option (int argc, char * const *argv, uintmax_t *n_units)

Solution 2 :

Bien qu'un peu ancienne, la question est toujours d'actualité. J'ai rencontré un problème similaire

ssh myserver.com 'tail -2 file-header*'

qui m'a donné l'erreur

tail :option utilisée dans un contexte invalide -- 2

cependant, suivre un seul fichier, comme

ssh myserver.com 'tail -2 file-header-file-one'

fonctionne bien. En regardant la source tail.c montre que queue commence par analyser obsolète options, puis analysez le reste (c'est-à-dire les options non encore traitées), les options normales. Cependant, parse_obsolete_option() attend une utilisation "obsolète", avec un seul fichier en argument.
Ainsi, lorsque vous fournissez plus de fichiers, la fonction revient immédiatement et laisse l'analyseur normal s'étouffer avec -2 (en attendant -n 2 ).

  /* With the obsolete form, there is one option string and at most
     one file argument.  Watch out for "-" and "--", though.  */
  if (! (argc == 2
         || (argc == 3 && ! (argv[2][0] == '-' && argv[2][1]))
         || (3 <= argc && argc <= 4 && STREQ (argv[2], "--"))))
    return false;

En conclusion, il vaut mieux toujours utiliser le -n forme régulière, sachant que le code "obsolète" n'accepte qu'un seul fichier.


Linux
  1. Commandes tête et queue sous Linux expliquées avec des exemples

  2. [Guide] Commandes apt vs apt-get, et laquelle utiliser ?

  3. Qu'est-ce qu'un TAM et pourquoi voudriez-vous en être un ?

  4. Encoder le contenu du fichier et le répercuter sur une seule ligne ?

  5. Relations entre les caractères de contrôle, les signaux et le terminal ?

Commande WC sous Linux (compter le nombre de lignes, de mots et de caractères)

[Bash Tips] Comment cd et ls en une seule commande

[Bash Tips] Comment cp ou mv et cd en une seule commande

Qu'est-ce qu'un Homelab et pourquoi devriez-vous en avoir un ?

Sous-domaines génériques et DNS

Obtenir les caractères  et â dans la console Linux PuTTY