Possibile duplicato:
sudo tar cvpzf in uscita con errore dovuto a un errore precedente
Quando eseguo il comando
tar -cvfz backup.tar.gz somedirectory
Ottengo il seguente sterr
tar: Exiting with failure status due to previous errors
Tuttavia, quando ometto il trattino precedente da -cvfz tutto sembra funzionare bene. C'è un motivo noto per cui il trattino mi impedisce di eseguire il tar dei miei file?
Risposta accettata:
Non sono sicuro del perché tar cvfz funziona, se si esegue una rapida scansione di man pagina e la mia esperienza, un trattino è una pratica standard. Forse è una questione di compatibilità BSD (come ps ).
In ogni caso, la tua sintassi non è corretta. -f prende l'argomento successivo come nome del file in cui comprimere. In questo caso, il nome del file è z , che non è quello che ti aspettavi. Ecco un esempio dell'output in modo da poter vedere cosa intendo:
$ tar -cvfz test.tar.gz scott
tar: test.tar.gz: Cannot stat: No such file or directory
scott/
scott/netx/
scott/netx/locks/
scott/netx/locks/netx_running
tar: Exiting with failure status due to previous errors
Un ls mostra un file chiamato z . Il file comando rivela che è un tar non compresso archivio. Non è compresso perché -z argomento non è stato approvato. E il messaggio di errore proveniva dal tentativo di aggiungere il file inesistente test.tar.gz all'archivio.
Riordina semplicemente le opzioni e sarai a posto:
tar -czvf test.tar.gz some/directory
Se fai sempre il -f l'ultimo argomento, starai bene. A proposito, ricorda che le opzioni brevi (opzioni di una lettera) che accettano argomenti normalmente non richiedono uno spazio tra l'opzione e l'argomento.
MODIFICA: A proposito, se il modulo senza il trattino è una cosa compatibile con BSD o qualcosa del genere, è probabile che il modo in cui tar viene invocato in un tale ambiente è diverso e non richiede il f flag per specificare il file di input, ma funziona più come cp o qualcosa. Ma questa è solo una speculazione basata sul confronto con ps (qv).