linux下面tar打包, 排除某个特定的目录( 只对一个目录操作, 不对其他目录操作)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下面tar打包, 排除某个特定的目录( 只对一个目录操作, 不对其他目录操作)相关的知识,希望对你有一定的参考价值。
比如 temp 下面有 aa bb cc dd四个文件夹, 然后bb下面有dd命名的文件, cc下面有dd命名的文件夹
我只想打包temp 下的aa bb cc 排除dd 我这样操作
①tar zcf temp.tar.gz * --exclude dd ②tar zcf temp.tar.gz * --exclude=dd③tar zcf temp.tar.gz * --exclude=dd 都不能达到我要的效果
这样有把temp下面的dd文件排除了 , 但是同时也把bb下面的以dd命名文件 还有cc下面的以dd命名的文件夹也排除了.
我只要排除temp根目录下面的dd文件夹及其子目录, 要保留bb下面同名的dd文件 还有cc下面的同名的dd文件夹, 请问正确的语法该怎么写, 可以只对一个目录操作, 不对其他目录操作.
/home/boomer/tmp/test
[boomer@www test]$ ls -R
.:
aa bb cc dd
./aa:
1.txct 1.txt
./bb:
2.txt dd
./bb/dd:
5.tx 5.txt
./cc:
3.txt dd
./cc/dd:
4.txt
./dd:
6.txt
[boomer@www test]$ cat > include.mydirs <<EOF
> aa
> bb
> cc
> EOF
[boomer@www test]$ tar cvzf temp.tar.gz `cat include.mydirs`
aa/
aa/1.txct
aa/1.txt
bb/
bb/dd/
bb/dd/5.tx
bb/dd/5.txt
bb/2.txt
cc/
cc/dd/
cc/dd/4.txt
cc/3.txt
[boomer@www test]$ 参考技术B 仅排除temp下的dd,下面这么写只会排除temp下面的dd文件夹和dd文件(bb下的dd不受影响)
tar -zcvf temp.tar.gz --exclude=temp/dd temp
排除temp下所有dd,,下面这么写会排除temp下面的所有dd文件夹(及dd里的文件)和所有dd文件(bb下的dd受影响,被排除)
tar -zcvf temp.tar.gz --exclude=dd temp 参考技术C tar -zcf tmp.tgz $(ls | grep -v dd)本回答被提问者采纳 参考技术D 这个去求是正常的, 也是可以实现的, 当然需要看看是想怎么用啊 。
死心了?
Linux zip打包排除某个目录或只打包某个目录
需求:zip打包某个目录但是要排除目录下某个文件或者某个目录。
zip -r server.zip server.geng.com/ -x ‘./server.geng.com/Upload/*‘
-x参数后加要排除的文件或目录的完整路径。注意引号不可少。
需求:zip打包只打包某个目录下单个目录(其实这个有点多余,直接打包这个目录就是了,应用的场景就是能保留目录树)
zip -r server.zip server.geng.com/ -i ‘./server.geng.com/Upload/*‘
-i参数后加要打包的文件或目录的完整路径。注意引号不可少。
补充zip的相关参数:
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩 -d 从压缩文件内删除指定的文件 -i “文件列表” 只压缩文件列表中的文件 -x “文件列表” 压缩时排除文件列表中指定的文件 -u 更新文件到压缩文件中 -m 将文件加入压缩文件压缩后,删除原始文件,zhidao即把文件移到压缩文件中 -F 尝试修复损坏的压缩文件 -T 检查压缩文件内的每个文件是否正确无误
以上是关于linux下面tar打包, 排除某个特定的目录( 只对一个目录操作, 不对其他目录操作)的主要内容,如果未能解决你的问题,请参考以下文章