默认情况下,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的文件内容。
- 拒绝使用绝对路径。
- 新建一个临时子目录,然后在这个子目录里解压。