文档首页/ 高性能弹性文件服务 SFS Turbo/ 常见问题/ SFS Turbo删除类问题/ 如何在Linux系统中删除大量文件或文件夹
更新时间:2025-05-23 GMT+08:00
分享

如何在Linux系统中删除大量文件或文件夹

当文件数量过多时,您可以使用以下常用方式删除大量文件或文件夹,提高删除速度和预防文件系统卡顿。

rm命令

删除当前目录下所有文件:“*”代表当前目录下所有文件。

rm -f *

find命令

  • 批量删除空文件夹:“-type d”用于指定过滤文件类型为direcory的条目,“-empty”参数用于过滤出空文件夹。
    find . -type d -empty -delete
  • 批量删除文件:“*”用于指定文件名。
    find . -name *.log -type f -delete
  • 批量强制删除非空文件夹:“*”为文件夹名称。
    find . -type d -name * -exec rm -fr "{}" \;
  • 批量删除多个非空文件夹:“*”、“?”为不同文件夹名称,删除多个非空文件夹时,文件夹名称和“-name”之间使用“-o”分隔。
    find . \( -name * -o -name ? \) -type d -exec rm -fr "{}" \;

rsync

  1. 安装rsync工具:
    1. 在Ubuntu/Debian系统上执行以下命令安装rsync。
      sudo apt install rsync
    2. 在CentOS/RHEL/Fedora系统上执行以下命令安装rsync。
      # Centos 7/RHEL 7 或更早版本
      sudo yum install rsync
      # Centos 8/RHEL 8 或 Fedora
      sudo dnf install rsync
  2. 首先建立空文件夹dst_test,执行以下命令删除大量文件,该命令通常用于快速清空origin_test整个文件夹而不是单独删文件。
    rsync -a --delete dst_test/ origin_test/

Python SDK

以下代码示例用于删除文件夹下所有文件,“test”为文件夹名:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# test.py
import os
import time
stime=time.time()
for pathname,dirnames, filenames in os.walk('/home/username/test'):
     for filename in filenames:
         file=os.path. join(pathname, filename)
         os.remove(file)
ftime=time.time()
print ftime-stime

执行脚本:

python test.py

相关文档