UNIX/Linux:批量删除多个文件
时间:2020-01-09 14:16:15 来源:igfitidea点击:
在Linux/UNIX/* BSD MacOS X操作系统下,如何批量删除多个文件(例如,存储在/netapp /及其子目录中的所有* .bak文件)?
您可以按以下方式使用find命令来批量查找和删除文件。
查找命令
语法为:
find /path/to/delete -type f -iname "fileType" -delete
或者
find /path/to/delete -type f -iname "fileType" -exec rm -f {} \;
要从/netapp /及其子目录中批量删除所有* .bak文件,请输入:
# find /netapp/ -type f -iname "*.bak" -delete
或者
# find /netapp/ -type f -iname "*.bak" -exec rm -f {} \;
Shell脚本编写示例,用于批量删除文件
在此示例中,我有一个名为delete.txt的文件(每行包含5000多个条目),您需要删除所有这些文件:
/netapp/one.txt /netapp/dir2/one.txt /netapp/dir1/dir500/one.txt .... ... .... /netapp/fivek.txt
如下创建shell脚本,以使用while循环一次一行来读取文本文件:
#!/bin/bash # Author: # Purpose: Delete a file using shell script in bulk # -------------------------------------------------- ## SET ME FIRST ## _input="/path/to/delete.txt" ## No editing below ## [ ! -f "$_input" ] && { echo "File ${_input} not found."; exit 1; } while IFS= read -r line do [ -f "$line" ] && rm -f "$line" done < "${_input}"
如下运行:
$ chmod +x script.sh $ ./script.sh
while语句用于在每个文件上重复执行rm命令。