Perché `tar -xvfz` fallisce, ma funziona` tar xvfz`?

tar -xvfz foo.tar.gz restituisce un errore tar: z: Cannot open: No such file or directory

Questo è completamente comprensibile – l'interruttore f prevede un nome di file e quindi deve essere l'ultimo.

  • Limitare il numero di utenti concorrenti che passano all'account root?
  • Come posso visualizzare i file di registro in Linux e applicare i file personalizzati durante la visualizzazione?
  • È ansible impostare la data su una macchina Linux all'anno 2040?
  • rsync: non può sbarazzarsi della richiesta di password
  • Perché il demone NTP continua ad ascoltare su UDP6?
  • Reverse dns per server web / mail con singolo ip
  • Tuttavia, omettendo il trattino tar xvfz foot.tar.gz funziona e decomprime e annulla il file.

    Ho testato questo su OS X 10.8 e Ubuntu 12.04.

    Qualche idea di perché?

    [modificato per aggiungere]

    Io uso sempre tar -zxvf foo.tar.gz Tuttavia, questa domanda è sorta a causa di questo xkcd e la mia sorpresa quando qualcuno ha insistito che il tar xvfz functionrebbe.

    immettere qui la descrizione dell'immagine

  • La rotazione del file di registro e la "tail -f"
  • Invia l'output bash -x al file di log senza interrompere l'output standard
  • sshd: come abilitare l'authentication PAM per gli utenti specifici in
  • Autenticazione integrata di Windows con Apache HTTP Server su Linux
  • data: Imansible impostare la data: Funzionamento non consentito
  • Accesso split Linux (connessioni multiple internet con bilanciamento del carico)
  • One Solution collect form web for “Perché `tar -xvfz` fallisce, ma funziona` tar xvfz`?”

    il tar ha 3 tipi di syntax (secondo questo ):

    • opzioni lunghe (–file)
    • opzioni brevi (-f)
    • vecchie opzioni (f)

    Per la syntax dell'ultima opzione, tutte le lettere devono seguire "tar" e devono rientrare in un unico block senza spazi. L'ordine delle lettere non import davvero, a patto che gli argomenti a quelle lettere seguano lo stesso ordine dopo il cumulo di opzioni.

    Questo vecchio modo di scrivere opzioni di tar può sorprendere anche utenti esperti. Ad esempio, i due comandi:

      # tar cfz archive.tar.gz file # tar -cfz archive.tar.gz file 

    sono piuttosto diversi. Il primo esempio utilizza 'archive.tar.gz' come valore per l'opzione 'f' e riconosce l'opzione 'z'. Il secondo esempio, tuttavia, usa 'z' come valore per l'opzione 'f' – probabilmente non quello che era stato inteso.

    Le vecchie opzioni sono conservate per essere compatibili con le vecchie versioni di catrame.

    Il command con un '-' equivale a

     tar -czf archive.tar.gz file tar -cf archive.tar.gz -z file tar cf archive.tar.gz -z file 

    Questo è il motivo per cui il tuo esempio sta lavorando senza un "-" e non con "-"

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.