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).