如何递归清除父目录中的所有空文件和目录?
假设我有以下目录结构:
Parent/
|____Child1/
|______ file11.txt (empty)
|______ Dir1/ (empty)
|____Child2/
|_______ file21.txt
|_______ file22.txt (empty)
|____ file1.txt
我应该以这个结尾:
Parent/
|____Child2/
|_______ file21.txt
|____ file1.txt
这是一个非常简单的班轮:
find Parent -empty -delete
这是不言自明的。虽然当我检查时我很惊讶它成功删除了Parent / Child1。通常,除非您指定,否则您希望它先处理父项,再处理子项-depth
。
这是有效的,因为-delete
暗含-depth
。参见GNU查找手册:
-delete
删除文件; 如果删除成功,则为true。如果删除失败,则会发出错误消息。如果-delete失败,则find的退出状态将为非零(最终退出时)。使用-delete会自动打开-depth选项。
请注意,这些功能不是Posix Standard的一部分,但很可能将在许多Linux发行版中提供。对于较小的诸如Alpine Linux的操作系统,您可能会有一个具体的问题,因为它们基于不支持的Busybox-empty
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句