我有一个文件夹,其中有很多文件夹,等等。某些文件夹中有文件,有些则没有。我想通过查找没有文件的所有目录并删除它们来清理主文件夹。一个例子可能更有意义:
所以,如果我从这个开始:
mainFolder
folder1
folder1
(空的)folder2
file.txt
folder3
(空的)folder2
folder1
(空的)folder2
(空的)folder3
folder1
folder1
(空的)folder3
folder1
file.txt
我应该以这个结尾:
mainFolder
folder1
folder2
file.txt
folder3
folder1
file.txt
所以:
/mainFolder/folder1/folder1
已被删除,因为它没有文件/mainFolder/folder1/folder3
已被删除,因为它没有文件/mainFolder/folder2
已被删除,因为它没有文件,甚至所有子文件夹都为空我希望这是有道理的...
我唯一的想法是从mainFolder
每个子文件夹开始并递归地向下移动,删除那些空的子文件夹。
看看这是否满足您的要求:
find mainFolder -depth -empty -type d -exec rmdir {} \;
那应该mainFolder
使用深度优先遍历找到空的目录,然后删除这些目录。由于它执行深度优先遍历,因此在删除子目录时,如果父目录为空,find
则将其标识为空并也将其删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句