Basic Use of FIND
If you are looking to find a file, one of the most common tools is Find. Here is a recap.
| O | FILE TYPE | DESCRIPTION |
|---|---|---|
| 1 | type -f | Limits search results to files only |
| 2 | type -d | Limits search results to directories only |
| 3 | type -l | Limits search results to symbolic links only |
For example, search for a case-insensitive file named “hello.mov”
$ find $HOME -type -iname "Hello.mov"
Parameters
| NO | PARAMETERS | DESCRIPTION |
|---|---|---|
| 1 | -name | Perform a case-sensitive search for “files” |
| 2 | -iname | Perform a case-insensitive search for “files” |
| 3 | size +n | Matches files of size larger than size n |
| 4 | size -n | Matches files of size smaller than size n |
| 5 | -mtime n | Matches files or directories whose contents were last modified n*24 hours ago |
| 6 | -atime n | Matches files last access n*24 hours ago |
For example, search for all case-insensitive files with the extension *mov 2 days ago
$ find $HOME -type -iname "*.mov" -mtime 2
Operators
| S/NO | OPERATOR | EXPLANATION |
|---|---|---|
| 1 | -and | Match for both sides of the operators |
| 2 | -or | Match for either test of the operators |
| 3 | -note | Don’t match the test of the operators |
For example, search for all files with Hello*, but excl ude pdf and jpg
$ find \( -name "Hello*" -mtime 2 \) -and -not \( -iname "*.jpg" -or -iname "*.pdf" \)
When using the () to combine tests, remember to escape the (\) brackets. You will need to leave a space after you open and close the brackets
find -type f -iname "*.mov" -exec chmod +x {} \;
The first part find -type f -iname”*.mov” will not be explained….. Executed commands must end with \; (a backslash and semi-colon) and may use {} (curly braces) as a placeholder for each file that the find command locates.
References:
- Linux Format – March Edition
- Use the Unix find command to search for files