1.Linux批量删除文件

1.1 删除同一类型的文件

如删除当前目录下的所有txt文件

rm *.txt

1.2 结合find命令进行批量删除

基本语法

find <path> <conditions> -exec rm <options> {} +

参数说明

  • <path>:搜索的起始目录。例如,.表示当前目录,/var/log表示/var/log目录。

  • <conditions>:查找条件,如按文件名、文件类型、修改时间等进行查找。

  • -exec:执行后续命令。

  • rm <options>:删除命令及其选项,例如-f表示强制删除。

  • {}:表示find找到的每个文件名。

  • +:表示一次性传递多个文件名给rm,而不是每找到一个文件就执行一次rm命令。

示例解释

删除当前目录及子目录下所有以.log结尾的文件

find . -name "*.log" -type f -exec rm -f {} +
  • .:表示从当前目录开始查找。

  • -name "*.log":按文件名模式查找,找到所有以.log结尾的文件。

  • -type f:限定为查找文件(不包括目录)。

  • -exec rm -f {} +:将找到的文件传递给rm -f命令执行删除操作。

删除7天前修改的所有.log文件

find . -name "*.log" -type f -mtime +7 -exec rm -f {} +
  • -mtime +7:查找修改时间在7天之前的文件。

删除特定目录下所有空文件

find /path/to/directory -type f -empty -exec rm -f {} +
  • /path/to/directory:指定要查找的目录。

  • -empty:查找空文件。

删除特定目录下大于100MB的文件

find /path/to/directory -type f -size +100M -exec rm -f {} +
  • -size +100M:查找文件大小大于100MB的文件。