gpt4 book ai didi

linux - Tar 一个目录,不包括某个特定目录

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:13 24 4
gpt4 key购买 nike

我在 Linux 中使用 tar 执行一项棘手的任务。你能帮帮我吗?

下面是我的目录结构。名为 Harry 的目录包含下面提到的文本文件和目录。

Harry/
-> file1.txt
-> file2.txt
-> file3.txt
-> chocobar/
-> restobar/
-> bluebar/
-> direct1/

我在这里的主要任务是编写一个脚本,将 Harry 的所有文件和目录压缩到一个名为“smallHarry.tar.gz”的包中。但是,脚本的参数之一包含上述任何“bar”目录。排除所有其他“栏”目录 tar 应该创建。

例如:如果我给出“./myscript restobar”,tar 应该包含所有文件,然后只包含“restobar/”和'direct1/' 目录。必须排除所有其他带有“bar”字符串(“chocobar”和“bluebar”)的目录。

我知道我可以执行“tar -zcvf Harry/* -exclude 'chocobar' -exclude 'bluebar'”。但我想要一个通用脚本。因为将来带有字符串 'bar' 的目录会增加,我不想每次得到一个带有字符串 'bar' 的新目录时都更新脚本。

最佳答案

如何忽略所有文件夹并手动添加您想要的文件夹?沿着这些线的东西:

脚本:

find Harry/ -maxdepth 1 -type f | xargs tar -zcvf ${2} Harry/${1}

运行 ./script.sh restobar 测试:

Harry/restobar/
Harry/restobar/2/
Harry/file2.txt
Harry/file1.txt

结构Harry/:

Harry/
├── bluebar
├── chocobar
│   └── 1
├── file1.txt
├── file2.txt
└── restobar
└── 2

生成的 tar :

drwxrwxr-x reut/reut         0 2016-05-23 21:56 Harry/restobar/
drwxrwxr-x reut/reut 0 2016-05-23 21:56 Harry/restobar/2/
-rw-rw-r-- reut/reut 0 2016-05-23 21:48 Harry/file2.txt
-rw-rw-r-- reut/reut 0 2016-05-23 21:48 Harry/file1.txt

关于linux - Tar 一个目录,不包括某个特定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37398259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com