tar命令的实用详解(C参数和排除文件--exclude)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
tar命令的实⽤详解(C参数和排除⽂件--exclude)⼀、tar:从压缩包中解压出指定⽂件
[root@d176 test]# tar ztf nrpe-2.12.tar.gz |grep src
nrpe-2.12/src/
nrpe-2.12/src/.cvsignore
nrpe-2.12/src/Makefile.in
nrpe-2.12/src/check_nrpe.c
nrpe-2.12/src/nrpe.c
nrpe-2.12/src/snprintf.c
nrpe-2.12/src/utils.c
[root@d176 test]# tar zxvf nrpe-2.12.tar.gz nrpe-2.12/src //解压
nrpe-2.12/src/
nrpe-2.12/src/.cvsignore
nrpe-2.12/src/Makefile.in
nrpe-2.12/src/check_nrpe.c
nrpe-2.12/src/nrpe.c
nrpe-2.12/src/snprintf.c
nrpe-2.12/src/utils.c
[root@d176 test]# ls
bijiao httpd.conf.bak_2015-07-12 locl nrpe-2.12 nrpe-2.12.tar.gz server.xml txt
[root@d176 test]# ls nrpe-2.12
src
[root@d176 test]# ls nrpe-2.12/src/
check_nrpe.c Makefile.in nrpe.c snprintf.c utils.c
[root@d176 test]# tar zxvf nrpe-2.12.tar.gz nrpe-2.12/src -C /root/hhhhhhhhhh/ //指定-C参数不⾏
nrpe-2.12/src/
nrpe-2.12/src/.cvsignore
nrpe-2.12/src/Makefile.in
nrpe-2.12/src/check_nrpe.c
nrpe-2.12/src/nrpe.c
nrpe-2.12/src/snprintf.c
nrpe-2.12/src/utils.c
或另外⼀种⽅式=============>
[root@d176 hhhhhhhhhh]# tar zxvf /root/test/nrpe-2.12.tar.gz nrpe-2.12/src //进⼊到要解压的⽬标⽬录
nrpe-2.12/src/
nrpe-2.12/src/.cvsignore
nrpe-2.12/src/Makefile.in
nrpe-2.12/src/check_nrpe.c
nrpe-2.12/src/nrpe.c
nrpe-2.12/src/snprintf.c
nrpe-2.12/src/utils.c
[root@d176 hhhhhhhhhh]# ls
nrpe-2.12
[root@d176 hhhhhhhhhh]# ls nrpe-2.12/
src
[root@d176 hhhhhhhhhh]# ls nrpe-2.12/src/
check_nrpe.c Makefile.in nrpe.c snprintf.c utils.c
------------------------------------------------------------------------------------------------------------------------------------------------------------------------⼆、tar:-C参数.
也可以排除⽬录与⽂件⼀起混合使⽤,如:
[root@lee ~]# tar -cvf test.tgz test/ --exclude dir1 --exclude a.log --exclude *.jpg
test/
test/b.txt
test/dir2/
test/b.log
test/a.txt
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
三、tar:压缩解压排除指定⽂件/⽬录/⽂件类型等.
问题:在/home/usr1⽬录下,想要打包/home/usr2⽬录中的⽂件file2,应该使⽤什么样的tar命令?
解答1:
$ tar -cvf file2.tar /home/usr2/file2
tar: Removing leading '/' from members names
home/usr2/file2
该命令可以将/home/usr2/file2⽂件打包到当前⽬录下的file2.tar中,需要注意的是:使⽤绝对路径标识的源⽂件,在⽤tar命令压缩后,⽂件名连同绝对路径(这⾥是home/usr2/,根⽬录'/'被⾃动去掉了)⼀并被压缩进来。
使⽤tar命令解压缩后会出现以下情况:
$ tar -xvf file2.tar
$ ls
…… …… home …… ……
解压缩后的⽂件名不是想象中的file2,⽽是home/usr2/file2。
解答2:
$ tar -cvf file2.tar -C /home/usr2 file2
该命令中的-C dir参数,将tar的⼯作⽬录从当前⽬录改为/home/usr2,将file2⽂件(不带绝对路径)压缩到file2.tar中。
注意:-C dir参数的作⽤在于改变⼯作⽬录,其有效期为该命令中下⼀次-C dir参数之前。
使⽤tar的-C dir参数,同样可以做到在当前⽬录/home/usr1下将⽂件解压缩到其他⽬录,例如:
$ tar -xvf file2.tar -C /home/usr2
⽽tar不⽤-C dir参数时是⽆法做到的:
$ tar -xvf file2.tar /home/usr2
tar: /tmp/file: Not found in archive
tar: Error exit delayed from previous errors。