-f 参数在 tar 命令中的作用是什么

Tob*_*oby 23 tar

使用时tar我总是包含-f在参数中,但我不知道为什么。

我抬头看那个人,它说;

-f, --file [HOSTNAME:]F

use archive file or device F (default
"-", meaning stdin/stdout)
Run Code Online (Sandbox Code Playgroud)

但说实话,我不知道这意味着什么。任何人都可以对此有所了解吗?

dde*_*eke 24

-f选项告诉tar下一个参数是存档的文件名,如果是-.

  • @Toby:我怀疑这是出于历史原因。“tar”是“tape archive”的缩写,大概原始版本并没有设想人们经常使用磁盘文件进行存档。 (6认同)

小智 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$ 
Run Code Online (Sandbox Code Playgroud)

...真是一团糟!

所述-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$ 
Run Code Online (Sandbox Code Playgroud)

  • > *如果您禁止使用 -f 参数,则输出将传递到 stdout*。这对于 GNU tar 来说是正确的,但我记得在 Solaris 上默认是一个磁带设备(`/dev/rmt0` 或类似的东西)。 (5认同)