tar命令:什么是破折号?

时间:2014-06-06 10:44:14

标签: linux shell tar

有人可以帮我理解这个命令:

tar -czf - -T ./tarFileList.tmp -C ./test_folder/ | ssh -l musthero voserver95.myserver.com -x "umask 002; cd /disk0/test_untar/ ; tar -xzf - "

特别是,我无法理解(tar -czf - ...)的第一个短划线是什么。如果我指定了我想要tar的文件列表,我为什么需要它(即{{1} }),以及从中获取这些文件的目录(即-T ./tarFileList.tmp)。

同样复制也有点令人困惑 - 如果没有-C ./test_folder/命令,如何通过ssh复制tarball?

1 个答案:

答案 0 :(得分:8)

第一个破折号是不必要的,您可以同样写:

tar cvf ...

第二个破折号属于f选项,它表示“不是在文件系统中创建命名文件,而是将已编译的文件写入stdout”。

然后stdout通过管道传递到ssh。远程机器上相应的untar是以stdin完全相同的方式解开。

因此,在回答您的问题时,在使用stdout <提取/读取tarfile时,使用tar cfstdin创建/编写tarfile时,短划线表示tar xf / p>