Find And Remove Files With One Command in Linux/Unix

The basic find command syntax is:

find dir-name criteria action
  1. dir-name : – Defines the working directory such as look into /tmp/
  2. criteria : Use to select files such as “*.sh”
  3. action : The find action (what-to-do on file) such as delete the file.

To remove multiple files such as *.jpg or *.sh with one command find, use:

find . -name “FILE-TO-FIND” -exec rm -rf {} \;
OR
find . -type f -name “FILE-TO-FIND” -exec rm -f {} \;

The only difference between above two syntax is that the first command remove directories as well where second command only removes files.
Options:

  1. -name “FILE-TO-FIND” : File pattern.
  2. -exec rm -rf {} \; : Delete all files matched by file pattern.
  3. -type f : Only match files and do not include directory names.

Examples:
Find all files having .bak (*.bak) extension in the current directory and remove them:

$ find . -type f -name “*.bak” -exec rm -f {} \;

Find all core files in the / (root) directory and remove them (be careful with this command):

$ find / -name core -exec rm -f {} \;

Find all *.bak files in the current directory and removes them with confirmation from user:

$ find . -type f -name “*.bak” -exec rm -i {} \;
0

About the author

Janaki(http://janakiranjan.com) - A Software developer with 9+ years of experience in multiple technology projects across web, mobile, and cloud applications with expertise in PHP, C#, MySQL, Web services and open source platforms.

Similar Posts

Comments are closed.