The power of find command in Linux β advanced.
2010-05-24
350 words
2 mins read
Generally whoever uses Linux, would know about the find command. Find the man page <a href="http://amit.themafia.info/phpMan.php?parameter=find&mode=man" target="_blank">here.
There are also lots of blogs, tutorials and other articles on find command on the web, so why write another one. Because it’s worth every word spent on it π
find is a very powerful command, let’s see how (options for find command from man page and usage):
βdepth β Process each directory’s contents before the directory itself.
βmaxdepth β Descend at most <span style="text-decoration: underline;">levels (a non-negative integer) levels of directories below the command line arguments.
βxdev β Don’t descend directories on other filesystems.
βexecutable β Matches files which are executable and directories which are searchable (in a file name resolution sense).
This takes into account access control lists and other permissions artefacts which the -perm test ignores.
βiname β Like -name, but the match is case insensitive.
βnogroup β No group corresponds to file’s numeric group ID.
βnouser β No user corresponds to file’s numeric user ID.
βfls <span style="text-decoration: underline;">file β True; like -ls but write to <span style="text-decoration: underline;">file like -fprint.
βok <span style="text-decoration: underline;">command β Like -exec but ask the user first (on the standard input);
βprint0 β True; print the full file name on the standard output, followed by a null character
(instead of the newline character that -print uses).
βprintf <span style="text-decoration: underline;">format β True; print <span style="text-decoration: underline;">format on the standard output, interpreting ’’ escapes and ’%’ directives.
There are lot of other options but these are worth mention not used on regular basis. The printf option requires
special mention as the number of options that it supports is quite large and can reallyl help you in the formatting
the data that you get, as well as help you get the data that you want.
Example:
- Get names of files bigger than 5M
find . +5M -printf ”Name : %20f Size : %s\n”
- delete files (filenames contain spaces or quotes and so on)
find . -name ”name*” -print0 |xargs -0 rm -f
Updated 28th May: Realinged for issues with post going into the sidebar π
Related Articles:
- 2010/04/11 Advanced Sed Substitution Examples
- 2010/03/16 Linux find command β Find file and directories faster and easier
- 2009/12/10 Tip: Using find Command in Linux
- 2010/05/24 Inotify Example - Introduction to Inotify with a C Program Example
- 2010/05/19 Working with FTP Directories.
Authored By Amit Agarwal
Amit Agarwal, Linux and Photography are my hobbies.Creative Commons Attribution 4.0 International License.