tarコマンドで-fパラメーターは何をしますか


19

使用するとき、tar私は常に-fパラメーターに含めますが、理由はわかりません。

私は男を見上げて言った。

-f, --file [HOSTNAME:]F

use archive file or device F (default
"-", meaning stdin/stdout)

しかし、正直に言うと、それが何を意味するのか分かりません。誰かがそれに光を当てることができますか?

回答:


20

この-fオプションはtar、次の引数がアーカイブのファイル名、またはの場合は標準出力であることを示し-ます。


ああ、乾杯!とにかくファイル名を次に表示する必要があるので、この-fはもっと特別なことをしていました!
トビー

6
@Toby:これは歴史的な理由によるものだと思う。「tar」は「テープアーカイブ」の略で、おそらく元のバージョンでは、アーカイブ用のディスクファイルを頻繁に使用することを想定していなかったと思われます。
デビッドソーンリー

8

とても簡単です。-fパラメーターを省略すると、出力はstdoutに渡されます。

gammy@denice:/tmp/demo$ tar -c a b c
a0000644000175000017500000000000011435437117010223 0ustar  gammygammyb0000644000175000017500000000000011435437117010224 0ustar  gammygammyc0000644000175000017500000000000011435437117010225 0ustar  gammygammygammy@denice:/tmp/demo$ ls
a  b  c
gammy@denice:/tmp/demo$ 

...なんてこった!

-f-parameter(あなたが引用した)ファイル名(およびオプションでホスト名を)期待し、それは出力ファイル名ですので、後の最初の引数:

gammy@denice:/tmp/demo$ tar -cf output.tar a b c
gammy@denice:/tmp/demo$ ls
a  b  c  output.tar
gammy@denice:/tmp/demo$ 

5
> -fパラメーターを抑制すると、出力はstdoutに渡されます。これはGNU tarにも当てはまりますが、Solarisではデフォルトがテープデバイス(/dev/rmt0またはこのようなもの)だったことを覚えています。
クリスチャン・シウピトゥ

*除外(「抑圧」ではない)
Mr Ethernet

1
GNUでさえtar、もはや文書化されていないTAPE変数を尊重します。たとえば、試しTAPE=/tmp/tape.tar tar cv /etc/h*てからls -l /tmp/tape.tar
ロアイマ

2

使用するファイルまたはデバイスを指定できます。他の提供されたフラグに応じて、そこから物を作成、更新、または抽出します。例えば:

# Create a tar file with the contents of somepath/
tar -cvf filename.tar somepath/

# Extract the tar file.
tar -xvf filename.tar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.