解压指定文件
我们先删除libgtkmm-2.4.so.1,然后再将它解压至当前目录
[sunjiebin@rhel6 test]$ rm libgtkmm-2.4.so.1
[sunjiebin@rhel6 test]$ ls
bzip2.tar.bz2 etc.tar.bz2 loo pbzip2.tar.bz2 root single ssh_config user
[sunjiebin@rhel6 test]$ tar -tf bzip2.tar.bz2
loo/
loo/ab.gz
loo/abc.gz
loo/lo/
loo/lo/abcd.gz
libgtkmm-2.4.so.1
ssh_config
[sunjiebin@rhel6 test]$ tar -jxvf bzip2.tar.bz2 libgtkmm-2.4.so.1
libgtkmm-2.4.so.1
[sunjiebin@rhel6 test]$ ls
bzip2.tar.bz2 libgtkmm-2.4.so.1 pbzip2.tar.bz2 single user
etc.tar.bz2 loo root ssh_config
可以看到,解压成功了。
我们将压缩文件目录下的内容解压至指定目录试试
[root@rhel6 test]# rm loo/ab* -f
[root@rhel6 test]# ls loo/
lo
[root@rhel6 test]# tar -jxvf bzip2.tar.bz2 loo/ab.gz loo/abc.gz -C loo/
loo/ab.gz
loo/abc.gz
[root@rhel6 test]# ls loo/
abc.gz ab.gz lo
从这里可以看到,我们将压缩文件中loo/ab.gz loo/abc.gz两个文件成功解压到了当前目录的loo目录下!
指定不压缩某些文档
--exclude=file,指定的file即为排除在外的列表
[root@rhel6 test]# ls loo/
abc.gz ab.gz lo
[root@rhel6 test]# tar -jcvf loo.tar.bz2 loo/ --exclude=ab.gz
loo/
loo/abc.gz
loo/lo/
loo/lo/abcd.gz
[root@rhel6 test]# tar -tf loo.tar.bz2
loo/
loo/abc.gz
loo/lo/
loo/lo/abcd.gz
可以看到我们已经将loo/ab.gz排除在外了。loo.tar.bz2并没有被压缩进来。
将较新的文件添加进压缩包
--newer可以将ctime,mtime比指定时间新的文件添加进去
--newer-mtime则指定只是mtime比较新的被添加
[root@rhel6 test]# tar -tf bzip2.tar.bz2
loo/
loo/ab.gz
loo/abc.gz
loo/lo/
loo/lo/abcd.gz
ssh_config
libgtkmm-2.4.so.1
[root@rhel6 test]# date
2011年 11月 15日 星期二 23:31:50 CST
[root@rhel6 test]# ls
bzip2.tar.bz2 libgtkmm-2.4.so.1 loo root single ssh_config user
[root@rhel6 test]# touch 2332
[root@rhel6 test]# mkdir -p 2333/2334
[root@rhel6 test]# tar -jcf bzip2.tar.bz2 --newer="2011/11/15 23:31:50" *
[root@rhel6 test]# tar -tf bzip2.tar.bz2
2332
2333/
2333/2334/
loo/
loo/lo/
root/
root/loo/
root/loo/lo/
single/
user/
user/loo/
user/loo/lo/
这里可以看到,我们新建的文件2332和新建的目录2333及子目录2334都被添加进了bzip2.tar.bz2里面。而以前的文件则未被添加。