关于用tar命令打包目录时,去除部分子目录的子目录

来源:互联网 发布:lol龙瞎皮肤淘宝多少钱 编辑:程序博客网 时间:2024/05/17 23:06

问题
在/tmp/目录下有子目录aaa,bbb,ccc,ddd;和文件zz.txt,qq.txt,pp.php;但是在aaa子目录下有一个文件ccc.php。要求用一条命令将/tmp/下除ccc子目录之外的所有文件打包成/tmp/tmp.tar.gz,注意将aaa子目录下的ccc.php应该在压缩包中。
 

解决方法
可以用下面的命令来去除多个目录,并且还可以去除子目录的子目录
 tar --exclude /tmp/t/ccc --exclude /tmp/t/ddd/tmp/t/ddd -zcvf tmp.tar.gz /tmp/t/*

其中

tar -czvf /tmp/tmp.tar.gz `find /tmp/* -path "/tmp/ccc" -prune -o -print`
这个方法可以

但是也不能除去两个以上的目录

以下两种方式都不行
tar --exclude /tmp/ccc /tmp/ddd -zcvf tmp.tar.gz /tmp/t/*
tar -czvf /tmp/tmp.tar.gz `find /tmp/* -path "/tmp/ccc /tmp/ddd" -prune -o -print`

原创粉丝点击