(在 Linux 系统上)
我的文件系统上有一大堆嵌套子目录。我想删除所有不包含任何文件的目录路径。
换句话说,我想递归地删除每个目录中没有文件的目录或该目录的任何子目录中没有文件的目录。
答案1
对于所有版本的 find
find -depth -type d -empty -exec rmdir {} \;
如果你有较新版本
find -type d -empty -delete
答案2
可能不是最好的解决方案,但是这个脚本有效:
#!/bin/sh
while true
do
DIRS=`find . -xdev -type d -exec find {} -maxdepth 0 -empty \;`
if [ -z "$DIRS" ]; then
exit 0
else
echo $DIRS | xargs rmdir
fi
done
(部分基于对列出所有空文件夹)
答案3
for i in `find -type d -empty`; do rmdir $i; done