默認情況下,tar命令可以用來將文件打包為.tar包或者用來解開.tar包。tar命令也可以調用其它壓縮算法從而支持gzip,bzip2等等。
tar命令有幾種主要模式:
* 打包:
tar cf allfile.tar *.jpg
* 解包到指定的目錄:
tar xf allfile.tar -C ~/Pictures
* 列出tar包中的所有文件:
tar tf allfile.tar
* 往已有的tar包中增加新文件:
tar rf allfile.tar *.png
使用tar命令處理其它壓縮算法
* gzip(.tar.gz或者.tgz)
tar zcf allfile.tar.gz *.jpg
tar zxf allfile.tar.gz -C ~/Pictures
* bzip2(.tar.bz2或者.bz2)
tar jcf allfile.tar.bz2 *.jpg
tar jxf allfile.tar.bz2 -C ~/Pictures
歸檔里面的所有文件均是相對引用,歸檔解壓縮(釋放)在了當前目錄。歸檔文件總是釋放到當前目錄,為的是防止破壞文件系統中重名的文件。
如果想覆蓋的話,在歸檔和解壓時請使用-P參數:
tar zcvf mysql.tar.gz -P /var/lib/mysql
tar -Pzxvf mysql.tar.gz(這會覆蓋本地的/var/lib/mysql目錄)
Tar炸彈
攻擊者利用絕對路徑,或者“tar -cf bomb.tar
*”的方式創建的tar文件,然后誘騙受害者在根目錄下解壓,或者使用絕對路徑解壓。可能使受害系統上已有的文件被覆蓋掉,或者導致當前工作目錄凌亂不
堪,這就是所謂的“tar炸彈”。因此,要養成良好的解壓習慣:
- 解壓前用“t”查看tar的文件內容。
- 拒絕使用絕對路徑。
- 新建一個臨時子目錄,然后在這個子目錄里解壓。