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.