IMT*_*Man 3 bash directory files delete
我有一个文件夹,文件夹中的文件夹中有很多文件夹等等......有些文件夹有文件,有些没有。我想通过查找所有没有文件的目录并删除它们来清理主文件夹。一个例子可能更有意义:
所以如果我从这个开始:
mainFolder
folder1
folder1 (空的)folder2
file.txtfolder3 (空的)folder2
folder1 (空的)folder2 (空的)folder3
folder1
folder1 (空的)folder3
folder1
file.txt我应该以这样的方式结束:
mainFolder
folder1
folder2
file.txtfolder3
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则会将其标识为空并将其删除。
| 归档时间: |
|
| 查看次数: |
2875 次 |
| 最近记录: |