Jump to content

How to Find a File in Linux Using the Find Command


aum

Recommended Posts

find-feature-800x400.jpg.webp

 

The Linux find command is one of the most important and handy commands in Linux systems. It can, as the name suggests, find files on your Linux PC based on pretty much whatever conditions and variables you set. You can find files by permissions, users, groups, file type, date, size and other possible criteria using the find command. Here we show you how to find a file in Linux using the find command.

 

The find command is available on most Linux distro by default, so you do not have to install a package for it.

 

Find Files by Name in Current Directories

 

The most obvious way of searching for files is by name. To find a file by name in the current directory, run:

 

find . -name photo.png

 

find-photo.jpg.webp

 

If you want to find a file by name that contains both capital and small letters, run:

 

find . -iname photo.png

 

find-iname-photo.jpg.webp

 

If you want to find a file in the root directory, prefix your search with sudo, which will give you all the permissions required to do so, and also the / symbol, which tells Linux to search in the root directory. Finally, the -print expression displays the directories of your search results. If you were looking for Gzip, you’d type:

 

sudo find / -name gzip -print

 

find-gzip.jpg.webp

 

Find Files Under Specific Directory


If you want to find files under a specific directory like “/home,” run:

 

find /home -name filename.txt

 

find-home.jpg.webp

 

If you want to find files with the “.txt” extension under the “/home” directory, run:

 

find /home -name "*.txt"

 

find-home-wildcard.jpg.webp

 

To find files whose name is “test.txt” under multiple directories like “/home” and “/opt”, run:

 

find /home /opt -name test.txt


To find hidden files in the “/home” directory, run:

 

find /home -name ".*"


To find a single file called “test.txt” and remove it, run:

 

find /home -type f -name test.txt -exec rm -f {}


To find all empty files under the “/opt” directory, run:

 

find /opt -type f -empty


Find Directories Using Name


If you want to find all directories whose name is “testdir” under the “/home” directory, run:

 

find /home -type d -name testdir


To file all empty directories under “/home,” run:

 

find /home -type d -empty


Find Files with Certain Permissions


The find command can be used to find files with a specific permission using the perm option.

 

To find all files whose permissions are “777” in the “/home” directory, run:

 

find /home -type f -perm 0777 -print


To find all the files without permission “777,” run:

 

find . -type f ! -perm 777


To find all read-only files, run:

 

find /home -perm /u=r


To find all executable files, run:

 

find /home -perm /a=x


To find all the sticky bit set files whose permissions are “553,” run:

 

find /home -perm 1553


To find all SUID set files, run:

 

find /home -perm /u=s


To find all files whose permissions are “777” and change their permissions to “700,” run:

 

find /home -type f -perm 0777 -print -exec chmod 700 {} ;


Find Files and Directories Based on Date and Time


To find all the files under “/opt” which were modified 20 days earlier, run:

 

find /opt -mtime 20


To find all the files under “/opt” which were accessed twenty days earlier, run:

 

find /opt -atime 20


To find all the files under “/opt” which were modified more than 30 days earlier and less than 50 days after:

 

find /opt -mtime +30 -mtime -50


To find all the files under “/opt” which were changed in the last two hours, run:

 

find /opt -cmin -120


Find Files and Directories Based on Size


To find all 10MB files under the “/home” directory, run:

 

find /home -size 10M


To find all the files under the “/home” directory which are greater than 10MB and less than 50MB, run:

 

find /home -size +10M -size -50M


To find all “.mp4” files under the “/home” directory with more than 10MB and delete them using a single command, run:

 

find /home -type f -name *.mp4 -size +10M -exec rm {} ;


As you can see, the find command is incredibly useful for administering a system, looking through directories to find files, and generally pruning the virtual directory tree in Linux. If you enjoyed this Linux article, make sure you check out some of our other Linux content, like how to use the scp command to securely transfer files, how to use nnn as a file manager in the terminal, and how to fix broken packages.

 

Source

Link to comment
Share on other sites


  • Views 1.2k
  • Created
  • Last Reply

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...