GNU/Linux >> Linux Esercitazione >  >> Linux

Coda e caratteri jolly

Soluzione 1:

Credo che vorresti:

tail -n 10 *-access.log

Quanto al perché :
Non penso che abbia nulla a che fare con il globbing:

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

Penso che accada che il tuo glob si espanda in un file. Probabilmente ha qualcosa a che fare con alcune opzioni arcaiche di parsing che sono troppo pigro per provare a leggere, ma se vuoi davvero saperlo vai a cercare in tail.c nel sorgente coreutils e analizza la seguente funzione:

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

Soluzione 2:

Anche se un po' vecchia, la domanda è ancora rilevante. Ho riscontrato un problema simile

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

che mi ha dato l'errore

tail:opzione utilizzata in un contesto non valido -- 2

tuttavia, coda solo un file, come

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

funziona bene. Guardando la fonte tail.c mostra quella coda inizia con l'analisi di obsoleto opzioni, quindi analizza il resto (ovvero opzioni non ancora elaborate), opzioni regolari. Tuttavia, parse_obsolete_option() prevede un utilizzo "obsoleto", con un solo file come argomento.
Quindi, quando si forniscono più file, la funzione ritorna immediatamente e consente al normale parser di soffocare su -2 (previsto -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;

In conclusione, è meglio usare sempre il -n forma regolare, sapendo che il codice "obsoleto" accetta solo un file.


Linux
  1. [Guida] comandi apt vs apt-get e quale usare?

  2. Che cos'è un TAM e perché potresti volerlo diventare?

  3. Relazioni tra caratteri di controllo, segnali e terminale?

  4. Ubuntu 16.04 e problemi con Amdgpu?

  5. Upterm:un IDE e un emulatore di terminale in un'unica app

Comando Wc in Linux (conta il numero di righe, parole e caratteri)

[Suggerimenti Bash] Come fare cd e ls in un comando

[Suggerimenti Bash] Come cp o mv e cd in un comando

Che cos'è un Homelab e perché dovresti averne uno?

Sottodomini jolly e DNS

Ottenere i caratteri  e â nella console Linux PuTTY