Home » Scripting and Automation » Bash / Shell Scripts » Find and Delete File and Directory using Bash Shell Script

Find and Delete File and Directory using Bash Shell Script

Below shell script will find and delete certain file or multiple files from the directory you want. We have used current directory from where script is run, you need to change DIR_TO_SEARCH and FILE_TO_SEARCH_N_DEL from below script.

 $ vim script_to_find_and_delete_file.sh 
#!/bin/bash
DIR_TO_SEARCH=$PWD
FILE_TO_SEARCH_N_DEL=testing.txt

for file in $(find $DIR_TO_SEARCH -name $FILE_TO_SEARCH_N_DEL)
do
        echo "deleting $file"
        rm -rf $file
done

In above script, you can change “DIR_to_SEARCH” to point to your directory where you need to search file and “FILE_TO_SEARCH_N_DEL” to name of the file which you want to delete.

 $ cd to_your_directory 
 $ bash script_to_find_and_delete_file.sh 

This above command will delete all the matching files or directories with name testing.txt from all the directories present in current working directory.

You can use also use pattern to delete all the types of file (with different extention) matching with file name as,

#!/bin/bash
DIR_TO_SEARCH=$PWD
FILE_TO_SEARCH_N_DEL=testing.*

for file in $(find $DIR_TO_SEARCH -name $FILE_TO_SEARCH_N_DEL)
do
        echo "deleting $file"
        rm -rf $file
done

Same above thing also can be achieved from command line using xargs as,

$ find . -name $FILE_TO_DELETE | xargs rm -rf

Another way to do is,

$ find . -type f -name $FILE_TO_DELETE -exec rm -f {} \;
How to Delete Only Files Inside a D...
How to Delete Only Files Inside a Directory - Ansible module find

Leave a Comment