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.

  • La ridimensionamento dei volumi utilizzati come file di dati VMWare NFS causa problemi Linux VM
  • Imansible creare file sul grande filesystem XFS
  • Effettuare un sonno del disco rigido e solo svegliarsi quando necessario
  • strumento per eseguire statistiche nella row di command linux
  • Quale server di database scala meglio: PostgreSQL o MySQL?
  • Apache che cambia AllowOverride ha reso il mio server fallito
  • 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

  • OpenVPN - OpenVZ - Multicast e come abilitarlo
  • Ssh, eseguire un command per il login e quindi Stay Logged In?
  • Ho due server, come posso trovare i file che sono diversi?
  • Come fare Supervisord leggere le variables di ambiente bash
  • I file .pid sono affidabili per determinare se un process è in esecuzione?
  • Se l'utente "nessuno" sul mio server Ubuntu senza testa ha accesso alla shell?
  • 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.