IMT*_*Man 3 bash directory files delete
我有一个文件夹,文件夹中的文件夹中有很多文件夹等等......有些文件夹有文件,有些没有。我想通过查找所有没有文件的目录并删除它们来清理主文件夹。一个例子可能更有意义:
所以如果我从这个开始:
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
每个子文件夹开始并递归向下移动,删除空的子文件夹。
And*_*ton 10
看看这是否符合您的要求:
find mainFolder -depth -empty -type d -exec rmdir {} \;
Run Code Online (Sandbox Code Playgroud)
这应该mainFolder
使用深度优先遍历找到空的目录,并删除这些目录。由于它执行深度优先遍历,因此在删除子目录时,如果父目录为空,find
则会将其标识为空并将其删除。