find Command in Linux



NAME

find - search for files in a directory hierarchy

SYNOPSIS

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

DESCRIPTION

find searches the directory tree rooted at each given file name by evaluating the given expression from left to right, according to the rules of precedence, until the outcome is known (the left hand side is false for and operations, true for or), at which point find moves on to the next file name.

OPTIONS

TAG DESCRIPTION
-P Never follow symbolic links. This is the default behaviour. When find examines or prints information a file, and the file is a symbolic link, the information used shall be taken from the properties of the symbolic link itself.
-L Follow symbolic links. When find examines or prints information about files, the information used shall be taken from the properties of the file to which the link points, not from the link itself (unless it is a broken symbolic link or find is unable to examine the file to which the link points). Use of this option implies -noleaf. If you later use the -P option, -noleaf will still be in effect. If -L is in effect and find discovers a symbolic link to a subdirectory during its search, the subdirectory pointed to by the symbolic link will be searched.
-H Do not follow symbolic links, except while processing the command line arguments. When find examines or prints information about files, the information used shall be taken from the properties of the symbolic link itself. The only exception to this behaviour is when a file specified on the command line is a symbolic link, and the link can be resolved.

EXAMPLES

EXAMPLE-1:

To find all the files whose name is xyz.txt in a current working directory.:

# find . -name names.txt

output:
# ls
names.txt  test.txt  xyz.txt
# find . -name names.txt
./names.txt

EXAMPLE-2:

To find all the files under /tmp directory with name xyz.txt.

# find /tmp -name names.txt

output:
# ls /tmp/
names.txt  test.txt  xyz.txt

# find /tmp/ -name names.txt
/tmp/names.txt

EXAMPLE-3:

To find all the files whose name is names.txt and contains both capital and small letters in /tmp directory.:

# find /tmp -iname names.txt

output:
# ls /tmp/
names.txt  Names.txt  test.txt  xyz.txt

# find /tmp/ -iname names.txt
/tmp/Names.txt
/tmp/names.txt

EXAMPLE-4:

To find all directories whose name is test in / directory.

# find / -type d -name test

output:
/usr/src/linux-headers-3.19.0-25/lib/raid6/test
/usr/src/linux-headers-3.19.0-25-generic/include/config/pkcs7/test
/usr/src/linux-headers-3.19.0-25-generic/include/config/v4l/test
/usr/src/linux-headers-3.19.0-25-generic/include/config/test
/usr/src/linux-headers-3.19.0-25-generic/include/config/usb/ehset/test
/usr/lib/python3.4/test
/usr/lib/python2.7/dist-packages/OpenSSL/test
/usr/lib/python2.7/dist-packages/twisted/trial/_dist/test
/usr/lib/python2.7/dist-packages/twisted/trial/test
/usr/lib/python2.7/dist-packages/twisted/manhole/ui/test
/usr/lib/python2.7/dist-packages/twisted/manhole/test
/usr/lib/python2.7/dist-packages/twisted/internet/test
/usr/lib/python2.7/dist-packages/twisted/application/test
/usr/lib/python2.7/dist-packages/twisted/test
/usr/lib/python2.7/dist-packages/twisted/persisted/test
/usr/lib/python2.7/dist-packages/twisted/python/test
/usr/lib/python2.7/dist-packages/twisted/scripts/test
/usr/lib/python2.7/dist-packages/twisted/protocols/test
/usr/lib/python2.7/test

EXAMPLE-5:

To find all php files whose name is test.py in / directory.

# find / -type f -name test.py

output:
/usr/lib/python2.7/dist-packages/chardet/test.py

EXAMPLE-6:

To find all py files in / directory.

# find / -type f -name "*.py"

output:
/etc/python3.4/sitecustomize.py
/etc/python2.7/sitecustomize.py
/usr/src/linux-headers-3.19.0-25/scripts/analyze_suspend.py
/usr/src/linux-headers-3.19.0-25/scripts/rt-tester/rt-tester.py
/usr/src/linux-headers-3.19.0-25/scripts/checkkconfigsymbols.py
/usr/src/linux-headers-3.19.0-25/scripts/tracing/draw_functrace.py
/usr/share/doc/python-debian/examples/deb822/grep_native_packages.py
/usr/share/doc/python-pam/examples/pamtest.py
/usr/share/doc/apt-xapian-index/examples/axi-query-similar.py
/usr/share/doc/apt-xapian-index/examples/axi-query-tags.py
...
...
...
/usr/lib/python2.7/bsddb/dbobj.py
/usr/lib/python2.7/bsddb/db.py
/usr/lib/python2.7/bsddb/dbshelve.py
/usr/lib/python2.7/urllib.py
/usr/lib/python2.7/optparse.py
/usr/lib/python2.7/runpy.py
/usr/lib/python2.7/fractions.py
/usr/lib/python2.7/popen2.py
/usr/bin/miniterm.py

EXAMPLE-7:

 To find all the files whose permissions are 777.

# find . -type f -perm 0777 -print

output:
# ls -l /tmp/
total 4
-rwxrwxrwx 1 root   root    0 Dec 29 15:06 names.txt
-rw-r--r-- 1 root   root    0 Dec 29 15:13 Names.txt
-rwxrwxrwx 1 ubuntu ubuntu 13 Dec 28 01:12 test.txt
-rw-r--r-- 1 root   root    0 Dec 29 15:05 xyz.txt

# find /tmp -type f -perm 0777 -print
/tmp/names.txt

EXAMPLE-8:

To find all files that belongs to user ubuntu under /tmp directory.

# find /tmp -user ubuntu

output:
# ls -l /tmp
total 4
-rw-r--r-- 1 root   root    0 Dec 29 15:13 Names.txt
-r--r--r-- 1 ubuntu ubuntu 13 Dec 28 01:12 test.txt
-rw-r--r-- 1 root   root    0 Dec 29 15:05 xyz.txt

# find /tmp -user ubuntu
/tmp/test.txt

EXAMPLE-9:

To find all files that belongs to group ubuntu under /tmp directory.

# find /tmp -group ubuntu

output:
# ls -l /tmp
total 4
-rw-r--r-- 1 root   root    0 Dec 29 15:13 Names.txt
-r--r--r-- 1 ubuntu ubuntu 13 Dec 28 01:12 test.txt
-rw-r--r-- 1 root   root    0 Dec 29 15:05 xyz.txt

# find /tmp -group ubuntu
/tmp/test.txt

EXAMPLE-10:

* To find a single file called names.txt and remove it.

# find . -type f -name "names.txt" -exec rm -f {} \;

output:
# ls /tmp
names.txt  Names.txt  test.txt  xyz.txt

# find /tmp -type f -name "names.txt" -exec rm -f {} \;

# ls /tmp
Names.txt  test.txt  xyz.txt
Advertisements