删除文件名与模式和大小低于特定限制的所有文件

Chi*_*tan 1 bash

我需要删除所有带有.avi扩展且大小低于100MB 的文件。我有大量的视频文件,我需要删除短的文件以释放一些空间。我如何做到这一点?

Joh*_*024 5

使用find命令:

find /path/to/ -name '*.avi' -type f -size -100M -delete
Run Code Online (Sandbox Code Playgroud)

细节:

  • /path/to/

    这告诉 find 在/path/to/目录及其所有子目录中查找文件。如果要从当前目录开始,请.改用。

  • -name '*.avi'

    这告诉find只查找名称以.avi

  • -type f

    这告诉find只查找常规文件。这不包括目录、管道、套接字等。

  • -size -100M

    这告诉find只查找小于 100MB 的文件。如果要删除大于 100MB 的文件,请+100M改用。

  • -delete

    这告诉find删除符合上述条件的文件。

为安全起见,第一次尝试此命令时,请不要使用-delete. 这将返回找到的文件列表:

    find /path/to/ -name '*.avi' -type f -size -100M
Run Code Online (Sandbox Code Playgroud)

如果找到的文件是您要删除的文件,则将-delete.

仅搜索当前目录而不搜索其子目录

要将递归查找限制在子目录中,请使用以下-maxdepth选项:

find /path/to/ -maxdepth 1 -name '*.avi' -type f -size -100M -delete
Run Code Online (Sandbox Code Playgroud)

要在当前目录上执行上述操作:

find . -maxdepth 1 -name '*.avi' -type f -size -100M -delete
Run Code Online (Sandbox Code Playgroud)