UNIX / Linux: Deleting Multiple Files In Bulk

by on November 18, 2010 · 0 comments· LAST UPDATED November 18, 2010

in

How do delete multiple files in bulk (say all *.bak file stored in /netapp/ and its subdirectory) under Linux / UNIX operating systems?

You can use the find command as follows to find and delete file in bulk:

 
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 subdirectory, enter:
# find /netapp/ -type f -iname "*.bak" -delete
OR
# find /netapp/ -type f -iname "*.bak" -exec rm -f {} \;

Shell Scripting Example

In this example, you've 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
_input="/path/to/delete.txt"
[ ! -f "$_input" ] && { echo "File ${_input} not found."; exit 1; }
while IFS= read -r line
do
	[ -f "$line" ] && rm -f "$line"
done < "${_line}"

The while statement is used to executes rm commands repeatedly on each file.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 0 comments… add one now }

Leave a Comment

Tagged as: , , , , , , , , , , , ,

Previous Faq:

Next Faq: