Linux Find Command Examples
A mention of xargs might be worth slipping into this. A lot of the time it doesn't really matter whether you use that or -exec, but it's faster on large lists of files. And some commands (grep) act differently if there are multiple files specified as input.
Reading this article I realized I always put `find .`, i.e. explicitly specifying the current directory. I guess this is like saying `ls .` all the time, but oh well.
Sometimes I find that I need to chain a few actions for my search results that aren't possible with multiple -execs, so I employ the shell script loop:
Unfortunately if you've got spaces in your filenames, this will throw off /bin/sh and you have to specify delimiters or work around that.for js in `find . -name '*.js'`; do dir=`dirname $js`; cd $dir && make; java -jar jsmin.jar "$i"; done;Lastly, I've found with find that if you have a n-sized conditional where n > 1 and an -exec, you'll want to use escaped parentheses or otherwise the conditionals won't evaluate properly.
Edits: addressing formatting woes.
I always use it in the form:
{} gets expanded to the matching file names. Of course ls -l is just an example of command to run against the file name.find . -iname '*.someextension' -exec ls -l {} \;sudo find / -size +1G -exec ls -lah '{}' \; | awk '{print $8" : "$5}' | tee files_over_1G.txt ### This I use alot.
man find expanded into article? nice.