我有大约10个文件夹,我正试图在这些文件夹下只保留几个子文件夹,并删除剩余的文件夹。如何在Unix中保留某些文件夹并删除其余文件夹
例如:我有
A/1 A/2 A/3 A/4 B/1 B/4 B/5 B/6
我想只保留文件夹1和4的每个父文件夹为A和B.我使用find -type d -name 2 -exec rm -rf {} \;
找到并删除每个文件夹。
是否有任何unix命令只是保持文件夹1和4,并删除其余的?
我有大约10个文件夹,我正试图在这些文件夹下只保留几个子文件夹,并删除剩余的文件夹。如何在Unix中保留某些文件夹并删除其余文件夹
例如:我有
A/1 A/2 A/3 A/4 B/1 B/4 B/5 B/6
我想只保留文件夹1和4的每个父文件夹为A和B.我使用find -type d -name 2 -exec rm -rf {} \;
找到并删除每个文件夹。
是否有任何unix命令只是保持文件夹1和4,并删除其余的?
告诉准确找到你要找的东西;
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(或)运算符,它停止,如果什么来之前是真,否则继续:
find . -mindepth 2 -type d -name 1 -o -name 4 -o -exec rm -rf {} +
使用glob的只是
$ rm -rf [AB]/[^14]
我试过这个命令来检查它没有返回任何东西。 找到。 -mindepth 2 -type d -name“[^ 14]”-print – Roger
很奇怪。在我的安装中,我会得到您请求的确切结果。除非你的目录不是数字... – AlG