Find files that contain the string file2 in their name:
user@ubuntu:/$ locate file2
/home/user/Documents/file2.txt
/home/user/Documents/file2_sorted.txt
/home/user/Documents/file2_sorted_uniq.txtThe command locate queries a database containing all list of files and directories in the system. This database is updated
periodically, so when we try to locate new files, we might not find them.
In this case, we can update the database manually using the command updatedb before searching:
user@ubuntu:~$ sudo updatedbFind the file file2.txt in the directory Documents/:
user@ubuntu:~$ find Documents/ -name "file2.txt"
Documents/file2.txtIgnore the case (uppercase/lowercase) when searching for a file:
user@ubuntu:~$ find Documents/ -iname "file2.txt"
Documents/File2.TXT
Documents/File2.txt
Documents/file2.txtPS : By default, find search for both files and directories.
Search for files with extension .txt in the current directory:
user@ubuntu:~$ find . -iname "*.txt"
./Documents/file2_sorted_uniq.txt
./Documents/File2.TXT
./Documents/file2_sorted.txt
./Documents/numbers.txt
./Documents/File2.txt
./Documents/file2.txt
./Documents/file.txtSearch for files that contains the string pic in their name:
user@ubuntu:~$ find . -iname "*pic*"
./Pictures
./Pictures/picture.png
./Pictures/picture2.pngSearch for directories only:
user@ubuntu:~$ find . -iname "*pic*" -type d
./Pictures-type d can be replaced by -type f to search for files only, or -type l to search for links only.
Search for files/dirs modified during the previous 30 days:
user@ubuntu:~$ find . -mtime -30
.
./.viminfo
./.bash_history
./.vim
./.vim/.netrwhist
./Documents
./Documents/file2_sorted_uniq.txt
./Documents/File2.TXT
./Documents/file2_sorted.txt
./Documents/numbers.txt
./Documents/File2.txt
./Documents/file2.txt
./Documents/file.txt
./PicturesSearch for files/dirs that were modified before 30 days ago:
user@ubuntu:~$ find . -mtime +30
./.bashrc
./.profile
./Desktop
./.bash_logout
./Templates
./Music
./Videos
./.sudo_as_admin_successful
./Pictures/picture.png
./Pictures/picture2.png
./Downloads
./PublicTo search using files/dirs using access time instead of modification time, use -atime instead of -mtime.
Search for files that are heavier than 50Mb:
user@ubuntu:~$ find . -size +50M
./Videos/video.mkvWe can remplace M (Megabyte) by k (Kilobyte) or G (Gigabyte).
Delete all empty files in the current directory:
user@ubuntu:~$ find . -size 0 -delete -print
./Documents/File2.TXT
./Documents/File2.txtPrint found files using ls -dils format:
user@ubuntu:~$ find Documents/ -iname "file2.txt" -ls
12190591 0 -rw-r--r-- 1 user user 0 Aug 26 17:04 Documents/File2.TXT
12190598 0 -rw-r--r-- 1 user user 0 Aug 26 17:03 Documents/File2.txt
12190588 4 -rw-r--r-- 1 user user 77 Aug 26 17:03 Documents/file2.txtExecute a command on found files. In this example, we will move all .jpg files in the current directory to the directory
Pictures:
user@ubuntu:~$ find . -iname '*.jpg' -print -exec mv {} Pictures/ \;
./Videos/pic2.jpg
./Videos/pic.jpg