第一次运行
find . -type f ! -name '*.sub' ! -name '*.srt' -size -20M -print
Run Code Online (Sandbox Code Playgroud)
检查它是否只计算你想要的文件类型。我是一个很长的 Unix 用户,我总是在要求任何命令删除任何东西之前这样做(拼写错误总是发生在最糟糕的时间)。然后将前面的命令行编辑成
find . -type f ! -name '*.sub' ! -name '*.srt' -size -20M -print0 | xargs -0 /bin/rm -f
Run Code Online (Sandbox Code Playgroud)
并运行它。它应该做你想做的。! -name '*.srt'如果您需要排除更多文件,您可以多次重复该部分。小心包含单引号:它们对于防止 shell 进行文件名扩展很重要。
这里:
find . -type f -name *.bak -size -20M -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
您正在-name *.bak查找扩展名为“bak”的文件,-type f正在查找文件(不是目录),-size -20M为您提供所有小于 20MB 的文件(-size +20M用于反向搜索大于 20MB 的文件),并且-exec您正在删除此搜索的结果。