5 ms·
Linux Find Command Examples
- philh 17y agoA 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.
- noss 17y agoxargs was my first thought as well. I think I type in this line almost daily (why have i not made an alias already?): find . -type f | xargs grep needle gnu find and xargs have the -print0 and -0 arguments for piping nul terminated filenames, so special chars in file names wont bite you.
- antirez 17y agoI always use it in the form: find . -iname '*.someextension' -exec ls -l {} \; {} gets expanded to the matching file names. Of course ls -l is just an example of command to run against the file name.
- jcsalterego 17y agoReading 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: for js in `find . -name '*.js'`; do dir=`dirname $js`; cd $dir && make; java -jar jsmin.jar "$i"; done; 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. 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.
- piramida 17y agoman find expanded into article? nice.
- williebee 17y agosudo find / -size +1G -exec ls -lah '{}' \; | awk '{print $8" : "$5}' | tee files_over_1G.txt ### This I use alot.