Linux Search
find command
It supports searching by file, folder, name, creation date, modification date, owner and permissions
-type f: Search for files
-type d: Search for directories
-not : Return results that do not match the test case
-iname: Search without regard for text case
-perm octal: Search for the file if permission is ‘octal’ or with entered permissions
find ./Ananova -perm 777
-exec CMD: The file being searched which meets the above criteria and returns 0 for as its exit status for successful command execution
find ./Ananova -perm 771 -exec chmod o+r '{}' \;
-ok CMD: It works same as -exec except the user is prompted first
-inum N: Search for files with inode number ‘N’
-links N: Search for files with ‘N’ links
-name demo: Search for files that are specified by ‘demo’
-newer file: Search for files that were modified/created after ‘file’
-print: Display the path name of the files found by using the rest of the criteria
-empty: Search for empty files and directories
find ./Ananova -empty
Find and delete all the ‘.err' files in the hierarchy starting at the current directory
find . -name “*.err” -delete
find . -name "*.err" -delete
-size +N/-N: Search for files of ‘N’ blocks; ‘N’ followed by ‘c’can be used to measure size in characters; ‘+N’ means size > ‘N’ blocks and ‘-N’ means size < ‘N' blocks
-user name: Search for files owned by user name or ID ‘name’.
\(expr \): True if ‘expr’ is true; used for grouping criteria combined with OR or AND
! expr: True if ‘expr’ is false
Starting from the root, search for the specified file
find / -name <filename>
Find specific file in the specified directory
Search a file with a pattern using ‘*' or ‘?'
To find all the text files with an extension ‘.txt' in Ananova directory
find ./Ananova -name *.txt
The below command finds and deletes adult-host.txt from Ananova directory by taking confirmation
$ find ./Ananova -name adult-host.txt -exec rm -i {} \;
locate command
locate <filename>
Update or create a database ‘mloacate' of the files under the root directory, used by ‘locate' command
-n: Limit Search Queries to a Specific Number to avoid redundancy
locate "*.php" -n 10
-c: Display The Number of Matching Entries
locate -c [LinuxHost]*
-i: Ignore Case Sensitive Locate Outputs
locate -i *linuxhost.php*
-e: Display Only Files Present in Your System
locate -i -e *linuxhost.php*
-S: to view the locate database statistics
updatedb
Search in all files for a specified string
grep command (global search for regular expression and print out)
The grep filter searches a file for a particular pattern of characters referred to as a regular expression and displays all lines that contain that pattern.
grep <string> <path>/<directory-name>
Search $PATH, man pages and source files for an application specified
-i: Ignores, case for matching
grep -i "Ananova" hosting.php
-c: This prints only a count of the lines that match a pattern
-h: Display the matched lines, but do not display the filenames.
-l: Displays list of a filenames only
-o: Print only the matched parts of a matching line, with each such part on a separate output line
-n: Display the matched lines and their line numbers.
-v: This prints out all the lines that do not matches the pattern
-e exp: Specifies expression with this option. Can use multiple times.
-f file: Takes patterns from file, one per line.
-E: Treats pattern as an extended regular expression (ERE)
-w: Match whole word
whereis command
whereis <application-name>
Search $PATH for an application specified
-b: Search only for binaries
-m: Search for manual sections
-s: Search for sources
-u: Search for unusual entries. A file is said to be unusual if it does not have one entry of each requested type. For example, “whereis -m -u *” asks for those files in the current directory which have no documentation
-B: Change or otherwise limit the places and searches for binaries
-M: Change or otherwise limit the placesand searches for manual sections
-S: Change or otherwise limit the places the command searches for sources
-f: Terminate the last directory list and signals the start of file names, and must be used when any of the -B, -M, or -S options used
which command
To find the location of a program
which <application-name>
-a: show all the places a program installed