可能性のある複製:
前のエラーによる失敗で終了するSudo tar cvpzf
コマンドを実行するとき
tar -cvfz backup.tar.gz somedirectory
私は次のスターを取得します
tar: Exiting with failure status due to previous errors
ただし、-cvfz
から先行するハイフンを省略すると、すべて正常に動作するようです。ハイフンがファイルのタール化を妨げている理由はわかっていますか?
tar cvfz
が機能する理由がわかりません。man
ページのクイックスキャンと私の経験に基づいて、ハイフンが標準的な方法です。たぶんそれはBSD互換性のもの(ps
など)です。
とにかく、構文が正しくありません。 -f
は、圧縮するファイル名として次の引数を取ります。この場合、そのファイル名はz
であり、これは予期したものではありません。出力のサンプルを次に示しますので、私が何を意味するかを確認できます。
$ 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
ls
は、z
というファイルを示します。 file
コマンドは、それが非圧縮tar
アーカイブであることを明らかにします。 -z
引数が渡されなかったため、圧縮されていません。エラーメッセージは、存在しないファイルtest.tar.gz
をアーカイブに追加しようとしたことから発生しました。
オプションを並べ替えるだけで問題ありません。
tar -czvf test.tar.gz some/directory
常に-f
を最後の引数にすれば、大丈夫です。ところで、引数を取る短いオプション(1文字のオプション)は通常、オプションと引数の間にスペースを必要としないことに注意してください。
編集:ところで、ハイフンなしのフォームがBSD互換性のものまたはそのようなものである場合、そのような環境でtar
が呼び出される方法は異なる可能性があります、入力ファイルを指定するためにf
フラグを必要としませんが、cp
などのように機能します。しかし、これはps
(q.v.)との比較に基づく推測にすぎません。