递归删除大小小于 1MB 的文件

递归删除大小小于 1MB 的文件

如何从目录中递归删除大小小于 1MB 的文件?

答案1

可以通过以下方式完成find

find . -type f -size -1M -exec rm {} +

注意,这将递归进入子目录,并将无条件删除所有小于 1 兆字节的文件。请小心。

答案2

这应该可以完成这项工作:

$ find <directory> -type f -size -1M -delete

答案3

只是为了多样性和可能的​​(可能是边际的)性能提升:

find <directory> -type f -size -1M -print0  | xargs -0 rm

答案4

您可以查看此链接http://ayaz.wordpress.com/2008/02/05/bash-quickly-deleting-empty-files-in-a-directory/,它正好有你想要的东西。

for file in *;
  do
    file_size=$(du $file | awk '{print $1}');
    if [ $file_size == 0 ]; then
        echo "Deleting empty file $file with file size $file_size!";
        echo "rm -f $file";
    fi;
done

您可以使用 for 循环遍历所有文件,然后使用 du 和 awk 查找文件大小,如上例所示。

相关内容