Difference between revisions 507811 and 507812 on knwiki

{{otheruses}}
{{lowercase|title=find}} 

The <code>'''find'''</code> program is a [[directory (file systems)|directory]] [[search utility]], mostly found on [[Unix-like]] platforms. It searches through one or more directory [[tree (computing)|trees]] of a [[filesystem]], locating [[Computer file|file]]s based on some user-specified criteria. By default, <code>find</code> returns all files below the current [[working directory]]. Further, <code>find(contracted; show full) <code>chmod 744 {}</code> is executed replacing <code>{}</code> with the name of the file. The semicolon (backslashed to avoid the shell interpreting it as a command separator) indicates the end of the command. Permission <code>744</code>, usually shown as <code>rwxr--r--</code>, gives the file owner full permission to read, write, and execute the file, while other users have read-only access. In some shells, the <code>{}</code> must be quoted.


Note that the command itself should *not* be quoted; otherwise you get error messages like

 find: echo "mv ./3bfn rel071204": No such file or directory

which mean that '''find''' is trying to run a file called 'echo "mv ./3bfn rel071204"' and failing.

===Search for a string===
This command will search for a string in all files from the /tmp directory and below:

 find /tmp -exec grep "search string" '{}' /dev/null \; -print

The <tt>[[/dev/null]]</tt> argument is used to show the name of the file before the text that is found. Without it, only the text found is printed.  An equivalent mechanism is to use the "-H" or "--with-filename" option to grep:

(contracted; show full)
[[de:Find]]
[[es:Find]]
[[hu:Find]]
[[ja:Find]]
[[pl:Find]]
[[pt:Find]]
[[ru:Find]]