2014-06-06 40 views
-1

有人可以幫助我瞭解這個命令: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(即-T ./tarFileList.tmp),以及從哪裏獲取這些文件的目錄(即-C ./test_folder/)。

複製也有點混亂 - 如果沒有cp/scp命令,如何通過ssh複製tarball?

回答

3

的第一個破折號是不必要的,你同樣可以寫:

tar cvf ... 

第二個破折號與f選項屬於和它說「,而不是建立在文件系統中的指定文件,寫柏油的文件到stdout「。

stdout然後通過管道進入ssh。在遠程機器上相應的解壓縮方式與其stdin中的方式完全相同。

所以,在回答你的問題,當創建破折號意味着stdout /寫tar文件與tar cfstdin解壓時/讀取tar文件與tar xf

+0

OK!因此,破折號等於stdout _or_ stdin,具體取決於我是否創建_or_提取tarfile。謝謝! – musthero