如何将名称中没有“AAA”或“BBB”的所有文件夹放入zip文件?linux
在当前文件夹中,我有很多子文件夹,其中包含文件。如何将名称中没有AAA或BBB的文件夹放入.zip文件如何将名称中没有“AAA”或“BBB”的所有文件夹放入zip文件?linux,linux,zip,tar,Linux,Zip,Tar,在当前文件夹中,我有很多子文件夹,其中包含文件。如何将名称中没有AAA或BBB的文件夹放入.zip文件 123AAAcc 123.txt BBB.csv 222BBBss ... ADFAAA BBB adsf.txt vvBB 111.mov BBB.avi 我尝试了以下方法,它也排除了vvBB\BBB.avi和ADFAAA\BBB\*。我想保留这些 tar -zcvf test.tgz --exclude='*AAA*' --exclude='*BBB*'
123AAAcc
123.txt
BBB.csv
222BBBss
...
ADFAAA
BBB
adsf.txt
vvBB
111.mov
BBB.avi
我尝试了以下方法,它也排除了vvBB\BBB.avi和ADFAAA\BBB\*。我想保留这些
tar -zcvf test.tgz --exclude='*AAA*' --exclude='*BBB*' .
问题是,我如何能够只对级别1的子文件夹名执行-exclude操作,而对所有文件名和文件夹名执行递归操作
希望我有一个.zip文件,其中包含:
vvBB
111.mov
BBB.avi
我想把它作为一个命令行来实现。如何执行此操作?您可以通过将以下命令链接在一起来完成此操作: ls将列出当前目录中的所有文件和文件夹 grep-v\.*BBB.\\\\\.*AAA.*\查找所有带有AAA或BBB且被任何内容包围的名称,然后使用-v将其排除并返回所有其他结果 xargs tar-cvzf test.tgz将从管道中获取参数并将其应用于tar。总之,您可以得到:
ls | grep -v "\(.*BBB.*\)\|\(.*AAA.*\)" | xargs tar -cvzf test.tgz
我得到的部分结果是:
$ ls
123AAAcc
222BBBss
ADFAAA
vvBB
$ ls | grep -v "\(.*BBB.*\)\|\(.*AAA.*\)"
vvBB
$ ls | grep -v "\(.*BBB.*\)\|\(.*AAA.*\)" | xargs tar -cvzf test.tgz
a vvBB
a vvBB/111.mov
a vvBB/BBB.avi