【发布时间】:2017-10-20 21:22:28
【问题描述】:
我正在寻找一个用于 Linux shell 的命令,它将递归地删除所有包含 just 空 __init__.py 文件和/或其他空目录的目录。因此,如果该目录中的任何文件实际上至少包含一个字节,则不应将其删除。
因此,换句话说,递归删除所有空的python模块。 请注意,如果目录中包含除空 init.py 文件之外的任何其他内容 - 则不应将其删除。
到目前为止我发现/尝试的是:
find . -type d -empty -delete
和
find . -type d -size -5k -delete
和
find . -type d -size 0 -delete
第一个删除没有文件的目录(在我的示例中,它们包含空的 init.py 文件。
第二个为什么会捕获所有目录
Third 没有捕捉到任何东西
【问题讨论】:
-
类似于 for f in $(find . -name __init__.py -type f -size 0);做 [ $(ls ${f%/*} | wc -l) = 1 ] && rm -rf ${f%/*};完成