gpt4 book ai didi

linux - 如何将名称中没有 'AAA' 或 'BBB' 的所有文件夹放入 zip 文件中?操作系统

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

在当前文件夹中,我有很多子文件夹,其中有文件。如何将名称中没有 AAABBB 的文件夹放入 .zip 文件中?

123AAAcc
123.txt
BBB.csv
222BBBss
...
ADFAAA
BBB
adsf.txt
vvBB
111.mov
BBB.avi

我已尝试以下操作,它还排除了 vvBB\BBB.aviADFAAA\BBB\*。我想保留这些。

tar -zcvf test.tgz --exclude='*AAA*' --exclude='*BBB*' .

问题是,如何让 --exclude 仅适用于 1 级子文件夹名称,但递归地适用于所有文件名和文件夹名称?

希望我有一个 .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

关于linux - 如何将名称中没有 'AAA' 或 'BBB' 的所有文件夹放入 zip 文件中?操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901853/

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