回答:
オプション-
から削除しvcfz
ます。tar
オプションにハイフンは必要ありません。
ハイフンを使用すると、-f
オプションの引数はz
です。したがって、コマンドは実質的にアーカイブdvr_rdk_v1.tar.gz
を試みてdvr_rdk
、というアーカイブに入れようとしますz
。ハイフンがないと、オプションのセマンティクスが変更されるため、コマンドラインの次の引数、つまりアーカイブのファイル名がf
フラグの引数になります。
また、コマンドを実行しているディレクトリへの書き込み権限を確認してください。
-
GNU tarは風変わりですので、削除すると違いが生じます。オプション引数は、aで始まらない場合、最初の引数にバンドルできない-
ため、引数to f
は、次の引数tar
であり、tar vcfz dvr_rdk_v1.tar.gz
と同等tar -v -c -f dvr_rdk_v1.tar.gz -z
です。
z
場合やj
、-
関与していてもアーカイブの圧縮が成功したことに気付きました。ハイフンを追加すると、オプションの最後の文字が「ファイル」として扱われます。そのため、このオプションまたはを使用すると、結果として、j
またはz
アーカイブファイルとして取得されます。-cvfz
-cvfj
tarコマンドは、歴史的にUnixの従わないいくつかのコマンドの一つとなっているユーティリティの構文のガイドラインを。
tarの標準ページには次のように書かれています。
f
アーカイブの名前として、システム依存のデフォルトの代わりに、最初のファイルオペランド(またはbが既に指定されている場合は2番目)を使用します。
構文のガイドラインにはこれが含まれますが:
ガイドライン5:
オプション引数なしの1つ以上のオプションと、オプション引数を取るオプションが最大1つ続くものは、1つの「-」区切り文字の後ろにグループ化するときに受け入れられる必要があります。
したがって、入力したコマンドは、tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
古いバージョンのtarでは問題ありませんが、ユーティリティの構文ガイドラインに厳密に従うように記述された特定のバージョンのtarは、これを解析して「z
ファイル引数として使用」を意味します-f
。そのため、ポータブルにするために次を使用する必要があります。
tar -cvzf dvr_rdk_v1.tar.gz dvr_rdk/
アーカイブを作成するには
$ tar -cvf music.tar Music/
これはファイルとフォルダーのリストを表示します
$ tar -tvf music.tar
そして再び抽出する
$ tar -xvf music.tar
tar
。
tar
間違って使っていたということでしたが、少なくとも重要な違いが何であるかを言及するのは良いことです(-f
最後に向かって)
z
置いたよりも除外したf
ので、私のコメント。