Finding files, directories and applications
find -name "*pattern*" # Searches for *pattern* in and below current directory
find /usr/local -name "*blast*" # Finds file names *blast* in specfied directory
find /usr/local -iname "*blast*" # Same as above, but case insensitive
- Additional useful arguments: -user , -group , -ctime
find ~ -type f -mtime -2 # Finds all files you have modified in the last two days
locate <pattern> # Finds files and dirs that are written into update file
which <application_name> # Location of application
whereis <application_name> # Searches for executables in set of directories
yum list installed | grep <mypattern> # Find CentOS packages and refine search with grep pattern
Finding things in files
grep <pattern> <file> # Provides lines in 'file' where pattern 'appears'
# If pattern is shell function use single-quotes: '>'
grep -H <pattern> # -H prints out file name in front of pattern
grep 'pattern' <file> | wc # pipes lines with pattern into word count wc (see chapter 8)
# wc arguments: -c: show only bytes, -w: show only words,
# -l: show only lines; help on regular expressions:
# $ man 7 regex or man perlre
find /home/my_dir -name '*.txt' | xargs grep -c ^.* # Counts line numbers on many
# files and records each count along with individual file
# name; find and xargs are used to circumvent the Linux
# wildcard limit to apply this function on thousands of files.