問題:在/home/usr1目錄下,,想要打包/home/usr2目錄中的文件file2,應(yīng)該使用什么樣的tar命令,? 解答1: $ tar -cvf file2.tar /home/usr2/file2 tar: Removing leading '/' from members names home/usr2/file2 該命令可以將/home/usr2/file2文件打包到當(dāng)前目錄下的file2.tar中,,需要注意的是:使用絕對路徑標(biāo)識的源文件,在用tar命令壓縮后,,文件名連同絕對路徑(這里是home/usr2/,,根目錄'/'被自動去掉了)一并被壓縮進來。使用tar命令解壓縮后會出現(xiàn)以下情況: $ tar -xvf file2.tar $ ls …… …… home …… …… 解壓縮后的文件名不是想象中的file2,,而是home/usr2/file2,。 解答2: $ tar -cvf file2.tar -C /home/usr2 file2 該命令中的-C dir參數(shù),將tar的工作目錄從當(dāng)前目錄改為/home/usr2,,將file2文件(不帶絕對路徑)壓縮到file2.tar中,。注意:-C dir參數(shù)的作用在于改變工作目錄,其有效期為該命令中下一次-C dir參數(shù)之前,。 使用tar的-C dir參數(shù),,同樣可以做到在當(dāng)前目錄/home/usr1下將文件解壓縮到其他目錄,例如: $ tar -xvf file2.tar -C /home/usr2 而tar不用-C dir參數(shù)時是無法做到的: $ tar -xvf file2.tar /home/usr2 tar: /tmp/file: Not found in archive tar: Error exit delayed from previous errors |
|