You can use the find command as follows to find and delete file in bulk.
Find command
The syntax is:
find /path/to/delete -type f -iname "fileType" -delete |
OR
find /path/to/delete -type f -iname "fileType" -exec rm -f {} \; |
To delete all *.bak files in bulk from /netapp/ and its sub-directory, enter:
# find /netapp/ -type f -iname "*.bak" -delete
OR
# find /netapp/ -type f -iname "*.bak" -exec rm -f {} \;
Shell scripting example to delete files in bulk
In this example, I have a file called delete.txt (with 5000+ entries, each per line) and you need to delete all those files:
/netapp/one.txt /netapp/dir2/one.txt /netapp/dir1/dir500/one.txt .... ... .... /netapp/fivek.txt
Create a shell script as follows to read a text file using while loop one line at a time:
#!/bin/bash # Author: Vivek Gite # 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}" |
Run it as follows:
$ chmod +x script.sh
$ ./script.sh
The while statement is used to executes rm commands repeatedly on each file.