我有大约10个文件夹,我试图在这些文件夹下只保留几个子文件夹并删除其余文件夹。
示例:我有
A/1 A/2 A/3 A/4 B/1 B/4 B/5 B/6
我想在每个父文件夹A和B下只保留文件夹1和4.我正在使用find -type d -name 2 -exec rm -rf {} \;
来查找和删除每个文件夹。
是否有任何unix命令只保留文件夹1和4并删除其余文件?
答案 0 :(得分:1)
答案 1 :(得分:1)
AIG的排除想法可能是正确的,但是使用-o(或)运算符排除使用-o(或)运算符,如果之前的结果为真,则会停止运行,否则会继续:
find . -mindepth 2 -type d -name 1 -o -name 4 -o -exec rm -rf {} +
答案 2 :(得分:0)
我相信这适用于符合posix标准的系统:
find . -type d -links 2 \! \( \( -name 1 \) -o \( -name 4 \) \) -exec rm -rf {} \;
这仅包含子目录,并排除名为1或4的目录。