Commands

Commands

find

[path ][expression]

The find command searches the directory tree specified by the path argument for the pattern(s) indicated in the expression argument.

The expression consists of options, tests, and actions. Options affect overall operation rather than the processing of a specific file. Tests return a true or false value based on evaluation of some condition. Actions have side effects and return a true or false value.

Example: To search the entire system for a file named "abcd.txt", use

find / -name abcd.txt -print

Example: To search all the files in the directory tree of user "someguy" for the string "blah", use:

find /home/someguy -type f -print |xargs grep -n "blah"

graphics/tip.gif

A common mistake with the find command is assuming that it displays output by default. It doesn't. If you want to see what find found, you must specify one of the various print options (e.g., -print).

 

-daystart

Tell find to measure times relative to the start of the current calendar day rather than 24 hours ago.

-depth

Perform a depth first search, rather than a breadth first search. That is, search the contents of each directory before the directory itself.

-follow

Follow any symbolic links encountered in the search.

-help, --help

Display a help summary and exit.

-maxdepth levels

Descend at most the specific number of levels below the starting point.

-mindepth levels

Do not act on directories above the specified depth.

-mount

Do not traverse directories on other filesystems.

-noleaf

Do not increase search speed by discounting the "." and ".." directories in calculations. Used in searching CD-ROM and MS-DOS filesystems.

-version, --version

Display the version number and exit.

-xdev

Do not traverse directories on other filesystems.

Tests

Numeric arguments can be specified as follows:

+n

greater than n

-n

less than n

n

exactly n

 

-aminn

Specify that the file was last accessed n minutes ago.

-anewerfile

Look for files last accessed more recently than the specified file was modified.

-atimen

File was last accessed n*24 hours ago.

-cminn

File's status was last changed n minutes ago.

-cnewerfile

File's status was last changed more recently than file was modified. -cnewer is affected by -follow only if -follow comes before -cnewer on the command line.

-ctimen

File's status was last changed n*24 hours ago.

-empty

File is empty and is either a regular file or a directory.

-false

Always false.

-fstypetype

Search for the file on filesystems of the specific type.

-gidn

Specify the file's numeric group id.

-groupgname

Specify the file group name (or, allowably, numeric group ID).

-ilnamepattern

Like -lname, but the match is case insensitive.

-inamepattern

Case insensitive lname match.

-inumn

File has inode number n.

-ipathpattern

Like -path, but the match is case insensitive.

-iregexpattern

Case insensitive regex search.

-linksn

Specifies that file has n links.

-lnamepattern

File is a symbolic link whose contents match the specified pattern.

-mminn

File's data was last modified n minutes ago.

-mtimen

File's data was last modified n*24 hours ago.

-namepattern

Tell find to look for a file whose basename matches the specified shell pattern.

-newerfile

Tell find to look for files modified more recently than the specified file.

-nouser

No user corresponds to file's numeric user ID.

-nogroup

No group corresponds to file's numeric group ID.

-pathpattern

Match file name to the specified shell pattern.

-permmode

Exactly match the file permissions to the specified mode.

-perm -mode

All of the permission bits mode are set for the file.

-perm +mode

Any of the permission bits mode are set for the file.

-regexpattern

Match filename to the specified regular expression.

-size n[bckw]

Match file size to the specified unit of space (b = 512 byte blocks, c = bytes, k = kilobytes, w = 2 byte words).

-true

Always true.

-type c

Specify file typeone of the following:

b block (buffered) special

c character (unbuffered) special

d directory

p named pipe (FIFO)

f regular file

l symbolic link

s socket

-uidn

Match file's user id to n.

-usedn

File was last accessed n days after its status was last changed.

-useruname

Uname is the file's owner.

-xtype c

The same as -type unless the file is a symbolic link. If the file is a symbolic link and the -follow option is not set, then true if the file is a link to file of type c. If the -follow option is not set, then true if the specified type is l.

Actions

-exec command ;

Execute the specified command. The semicolon ";" indicates termination of command's argument set.

-flsfile

True; like -ls, but write to file the same way as -fprint.

-fprintfile

True; redirect file name output into the specified file.

-fprint0file

True; like -print0, but write to file the same way as -fprint.

-fprintffile format

True; like -printf, but write to file the same way as -fprint.

-okcommand ;

Like -exec option, but prompt before running.

-print

Send filenames to standard output.

-print0

Send filenames to standard output teminated with a null character.

-printfformat

Use the specified format when printing to standard output. Recognizes the following "\" escapes and "%" directives:

 

\a

Alarm Bell

 

\b

Backspace.

 

\c

Stop printing and flush output immediately.

 

\f

Form feed.

 

\n

Newline.

 

\r

Carriage return.

 

\t

Horizontal tab.

 

\v

Vertical tab.

 

\\

A literal backslash ("\").

 

%%

A literal percent sign.

 

%a

File's last access time.

 

%Ak

File's last access time in the format specified by k, which is either "@" or a directive for the C "strftime" function (specified next).

 

@

Seconds since Jan. 1, 1970, 00:00 GMT.

Time Fields

H

hour (00..23)

I

hour (01..12)

k

hour (0..23)

l

hour (1..12)

M

minute (00..59)

p

locale's a.m. or p.m.

r

time, 12 hour (hh:mm:ss [AP]M)

S

second (00..61)

T

time, 24 hour (hh:mm:ss)

X

locale's time representation (H:M:S)

Z

time zone (e.g., EDT)

Date Fields

a

weekday name abbreviations (Sun., Mon .)

A

weekday name (Sunday, Monday )

b

month name abbreviations (Jan., Feb .)

B

full month name (January, February )

c

date and time (Sat Nov 04 12:02:33 EST 1989)

d

day of month (01..31)

D

date (mm/dd/yy)

h

same as b

j

day of year (001..366)

m

month (01..12)

U

week number of year with Sunday as first day of week (00..53)

w

day of week (0..6)

W

week number of year with Monday as first day of week (00..53)

x

locale's date representation (mm/dd/yy)

y

last two digits of year (00..99)

Y

year (1970 )

%b

File size in blocks.

%c

Last file status change time.

%Ck

File's last status change time in the format specified by k.

%d

File's depth in the directory tree.

%f

File name with leading directories removed.

%F

Type of the filesystem where the file is located.

%g

File's group name.

%G

File's numeric group ID.

%h

Leading directories of file's name.

%H

Command line argument under which the file was found.

%i

File's inode number (in decimal).

%k

File's size in 1K blocks.

%l

Object of symbolic link (empty if file is not symbolic link).

%m

File's permission bits (in octal).

%n

Number of hard links to file.

%p

File's name.

%P

File's name minus the command line argument under which it was found.

%s

File's size in bytes.

%t

File's last modification time.

%Tk

File's last modification time in the format specified by k. (See %A above, for format details.)

%u

File's user name.

%U

File's numeric user ID.

-prune

If -depth is not given, true; do not descend the current directory. If -depth is given, false; no effect.

-ls

True; list current file n ls -dils' format on standard output.

Operators

Listed in order of decreasing precedence:

( expr )

Force precedence.

!, -not

Logical negation; expr True if expr is false.

expr1 expr2, expr1 -a expr2, expr1 -and expr2

Logical and. expr2 not evaluated if expr1 is false.

expr1 -o expr2, expr1 -or expr2

Logical or. expr2 not evaluated if expr1 is true.

expr1 , expr2

List; both expr1 and expr2 are always evaluated. The value of expr1 is discarded; the value of the list is the value of expr2.

finger

[-lmsp] [user ] [user@host ]

The finger command displays information about system users. If no argument is specified, finger will print out information on all users currently logged in. User may be a remote user; if so, use the "user@host" style of specification.

Example: To get information about the login status of user "jlevy", use

finger jlevy@diana.gov

graphics/tip.gif

Information stored in the file .plan in your home directory is printed to the screen whenever anyone fingers you. This was originally included so that you could keep fellow users up to the minute on your current doings (e.g., "In important meeting", "At lunch, back in an hour."). In actual practice, no one bothers to keep his or her .plans up to date and the file is almost universally used as a repository for obscure quotations.

 

-s

Display user's login name, real name, terminal name, write status, idle time, login time, office location, and office phone number.

-l

Long list. Display home directory; phone number; login shell; mail status; and .plan, .project, and .forward files.

-p

Do not display .plan and .project files.

-m

Do not match user names.

grep

[-[AB] NUM] [-CEFGVbchiLlnqsvwxyUu] [-e PATTERN | -f FILE] [--extended-regexp] [--fixed-strings] [--basic-reg-exp] [--regexp=PATTERN] [--file=FILE] [--ignore-case] [--word-regexp] [--line-regexp] [--line-regexp] [--no-messages] [--revert-match] [--version] [--help] [--byte-off-set] [--line-number] [--with-filename] [--no-filename][--quiet] [--silent] [--files-without-match] [--files-with-matches] [--count] [--before-context=NUM] [--after-context=NUM] [--context] [--binary] [--unix-byte-offsets] files

grep (Global Regular Expression Parser) searches through the input set for any matches to the specified pattern and (by default) outputs any matching lines. The command may also be invoked as egrep (a.k.a. grep -e) or fgrep (a.k.a. grep -f).

Example: To output the lines and numbers of any variable starting with "cha" in the c files in the current directory, use

grep -n cha *.c

Grep has three modes of use, as specified by the following options:

-G, --basic-regexp

Interpret the specified pattern as a basic regular expression.

-E, --extended-regexp

Interpret the specified pattern as an extended regular expression.

-F, --fixed-strings

Interpret the specified pattern as a list of fixed strings to be matched.

The grep family accepts the following options:

-NUM

Include the specified number of lines of leading and trailing context.

-ANUM

Include the specified number of lines of trailing context.

-BNUM

Include the specified number of lines of leading context.

-b, --byte-offset

Include byte offset in any output.

-c, --count

Instead of matching lines, output a count of matching lines.

-e PATTERN, --regexp=PATTERN

Use the specified pattern (including those beginning with "-").

-f FILE, --file=FILE

Use the specified FILE as the pattern source.

-h, --no-filename

Do not include filenames in output.

-i, --ignore-case

Treat uppercase and lowercase letters as equivalent.

-L, --files-without-match

Output only the names of files that contain no matches to PATTERN.

-l, --files-with-matches

Output only the names of files that contain matches to PATTERN.

-n, --line-number

Include line numbers in any output.

-q, --quiet

Output nothing, halt if match found.

-s, --silent

Do not output error messages about bad files.

-v, --revert-match

Output only those lines that do NOT match the specified pattern.

-w, --word-regexp

Output only those lines that match whole words.

-x, --line-regexp

Output only full line matches.

-y

Synonym for -i.

-U, --binary

Treat all files as binary.

-u, --unix-byte-offsets

Output UNIX-style byte offsets.

Grep recognizes the following in pattern specification:

Specifying Character Classes

[:alnum:]

Alphanumeric characters [0-9A-Za-z]

[:alpha:]

Alphabetic characters [A-Za-z]

[:cntrl:]

Control characters

[:digit:]

Digits

[:graph:]

Graphic characters

[:lower:]

Lowercase characters

[:print:]

Printable characters

[:punct:]

Punctuation characters

[:space:]

Whitespace (space, tab )

[:upper:]

Uppercase characters

[:xdigit:]

Hexadecimal digits

Specifying Position

.

Matches any single character

^

The beginning of a line

$

The end of a line

\<

Beginning of a word

\>

End of a word

\b

Empty string at edge of a word

\B

Empty string not at edge of a word

Specifying Pattern Repetition

?

Match the preceding item at most once.

*

Match the preceding any number of times (including none).

+

Match the preceding one or more times.

{n}

Match the preceding exactly n times.

{n,}

Match the preceding n, or more times.

{,m}

Match the preceding 0-m times.

{n,m}

Match the preceding at least n, but no more than m times.

locate

[-d path][--database=path][--version][--help] pattern

Locate searches a database of system files and locations for the specified pattern. The pattern specification can include shell metacharacters (*, ?, . , etc.)

Example: To find the file abcd.txt on any directory indexed by the updatedb command, use

locate abcd.txt

Locate is a quick and simple alternative to the find command, but you need to update the database regularly with updatedb.

-d path, --database=path

Tell locate to search the specified database for the pattern, rather than the default database.

--help

Print a summary of the options to locate and exit.

--version

Print the version number of locate and exit.

updatedb

[options]

This command updates the database of file names and locations used by the locate command.

Example: To update the default database file, use

graphics/root.gif

updatedb

graphics/tip.gif

Set your cron to run updatedb every so often.

 

--localpaths='path1 path2...'

Specify the (nonnetwork) directories to be included in the database.

--netpaths='path1 path2...'

Specify the network directories to be included in the database.

--prunepaths='path1 path2...'

Specify directories to be excluded from the database.

--output=dbfile

Specify the database file to be built (typically, /usr/local/var/locatedb).

--netuser=user

Specify the user identity to be used when searching network directories.

--old-format

Specify the database will be created in the old format.

--version

Display version information and exit.

--help

Display help information and exit.

which progname

Searches the user's path for the specified program and prints its full pathname, if found.

Example: To find the location in the directory tree of the ls command, use

which ls

 



Linux Desk Reference
Linux Desk Reference (2nd Edition)
ISBN: 0130619892
EAN: 2147483647
Year: 2000
Pages: 174
Authors: Scott Hawkins

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net