如何在Unix中保留某些文件夹并删除其余文件夹

如何在Unix中保留某些文件夹并删除其余文件夹,unix,find,rm,rmdir,Unix,Find,Rm,Rmdir,我有大约10个文件夹,我试图只保留这些文件夹下的几个子文件夹,并删除其余的 我有 A/1 A/2 A/3 A/4 B/1 B/4 B/5 B/6 A/1 A/2 A/3 A/4 B/1 B/4 B/5 B/6 我试图在每个父文件夹A和B下只保留文件夹1和4。我使用find-typed-name 2-exec rm-rf{}查找并删除每个文件夹 是否有任何unix命令只保留文件夹1和4,并删除其余文件夹?告诉find确切地查找您要查找的内容 find . -mindepth 2 -type d

我有大约10个文件夹,我试图只保留这些文件夹下的几个子文件夹,并删除其余的

我有

A/1 A/2 A/3 A/4 B/1 B/4 B/5 B/6 A/1 A/2 A/3 A/4 B/1 B/4 B/5 B/6 我试图在每个父文件夹A和B下只保留文件夹1和4。我使用
find-typed-name 2-exec rm-rf{}
查找并删除每个文件夹


是否有任何unix命令只保留文件夹1和4,并删除其余文件夹?

告诉find确切地查找您要查找的内容

find . -mindepth 2 -type d -name "[^14]" -exec rm -rf {} \;

排除目录1和4,在子级,查找其他目录并删除它们

我相信这适用于符合posix标准的系统:

find . -type d -links 2 \! \( \( -name 1 \) -o \( -name 4 \) \) -exec rm -rf {} \;

这只包括子目录,并排除名为1或4的目录。

AIG排除的想法可能是正确的,但使用find排除的方法是使用-o(or)运算符,如果前面出现的是真的,则停止,否则继续:

find . -mindepth 2 -type d -name 1 -o -name 4 -o -exec rm -rf {} +
使用just glob

$ rm -rf [AB]/[^14]

我尝试使用此命令进行检查,但它没有返回任何内容。找到-mindepth 2-键入d-名称“[^14]”-打印非常奇怪。在我的安装中,我得到了您要求的确切结果。除非你的目录不是数字。。。