tarで-fを使用する理由は何ですか

tarで-fを使用する理由は何ですか

からman tar

-f, --file ARCHIVE
アーカイブファイルまたはデバイス ARCHIVE を使用します。

以下を考慮してください。

tar -zxvf myFile.tar.gz

私が理解したところによると、z「gzipped tarball」、x「抽出済み」、v「詳細な出力」を意味しますが、fわかりません。

ファイル名をすでに指定していますが、引数が必要なのはmyFile.tar.gzなぜですか?f

答え1

これは、抽出、作成、追加など、使用するアーカイブの実際のパス名を指定するために使用するオプションです。それ以外の場合、-f archivename他の実装は異なる動作をしますtar(一部は、基本デバイス/dev、標準入力または出力ストリーム、または環境変数で指定されたファイル/デバイスを使用しようとする可能性があります)。

引用したコマンドラインから

tar -zxvf myFile.tar.gz

これは次のとおりです。

tar -z -x -v -f myFile.tar.gz

このオプションをmyFile.tar.gzオプション引数として使用して、現在のディレクトリ内の特定のファイルから抽出するように指定できます。

tar次のような場合、ユーティリティがどのデータストリームまたはデバイスを使用するかを確認するには、システムのマニュアルを参照してください。いいえこの-fオプションを使用してください。

tarたとえば、GNU実装には--show-defaults使用されているデフォルトオプションを表示するオプションがあり、これにはそのtarオプションを含めることができます-fTAPEこのデフォルトは環境変数を設定して上書きできます)。

答え2

だからあなたが必要とする他の多くのケースがありますfオプション。

- F ファイル

      使用ファイル読み書きするアーカイブとしての変数です。このフラグを指定しないと、tarコマンドはシステム依存のデフォルトファイル名を.if形式で使用します/dev/rmt0ファイル指定された変数は-(マイナス記号)で、tarコマンドは標準出力に書き込むか、標準入力から読み込みます。標準出力に書き込む場合は、-cこのフラグを使用する必要があります。

~からタールマンページ

例: テープ装置/tmpのアーカイブからディレクトリー内のすべてのファイルを抽出し、/dev/rmt2抽出時間を変更時間として使用するには、次のように入力します。

tar -xm -f/dev/rmt2 /tmp

そのファイルを含む新しいアーカイブファイルを作成し、file1そのアーカイブファイルをデバイスddに書き込むコマンドに渡すには、次のように入力します。/dev/rmt1

tar -cvf - file1 | dd of=/dev/rmt1 conv=sync

入力リスト・ファイルにリストされているすべてのディレクトリーと完全なファイル名infileをにアーカイブするには、ar.tar次のように入力します。

tar cvfL ar.tar infile

infileアーカイブするファイルのパス名を含みます。入力リスト・ファイルにリストされているディレクトリー内のファイルをinfileアーカイブするには、ar.tar次のように入力します。

tar cvRfL ar.tar infile

関連情報