Find

From Psygen Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Find is used to search the directory system for files.

find location options search pattern

find /home myfile.txt This will look in the /home folder for myfile.txt (if you leave out the location, find will look in the directory you are currently in.)

By Name

By default, find is case-sensitive. The above example will not find MYFILE.TXT. The -iname flag tells find to ignore case.

If you want the search to be case insensitive:

find -iname myfile.txt

The above will find all of the following: myfile.txt MYFILE.TXT MyFile.txt (etc...)


By Type

find -type f -name "*.txt" This will find all the files whose name ends in .txt in the current directory.

The -type f flag tells find to look for files ( -type d will tell find to look for directories.)

find /home/me/ -not -name "*.html" This will look for all files NOT named *.html


By Date

You can find files in the current directory older than X days with:

find . -mtime +30 -print

To delete them:

find . -mtime +30 -exec rm -f {} \;


By Permission

You can have find files based on permissions:

find . -type f -perm 644 This will find files in the current directory with 0777 permissions

. look in the current directory

-type f look for files

-perm 644 look for permissions. What permissions? 644 (-rw-r--r--)


More Examples of finding by permissions:

find -type f ! -perm 777 Look for anything that does NOT have 777 permissions

find / -perm /u=r Find read-only files. (Find -perm uses the same conventions as chmod )


Find and Execute

The -exec flag will make find do something to what it finds.

find / -type f -perm 777 -print -exec chmod 644 {} \; Find all files with 777 permissions. Run chmod 644 on the files that were found.


What's all that stuff at then end after the command I want to run?

{} each result of the find is put inside the brackets (The specified command (chmod 644 in this case) is run once for each matched file.)

\ This prevents the shell from expanding the contents of {}

 ; Ends the execute flag


References

  1. find man page
  2. Tecmint find Examples