Some working example on how to use find together with xargs
find syntax:
find [options] <where> <what>
find -L . -name *17a69*
find in local directory (.) and subdirectories (also follows symbolic links due to option -L) all files that contains 17a69 in the name
find . -cmin -30
find all files in current directory that changed status in the last 30 minutes. Use -amin or -mmin to find those that where accessed or modified in the last 30 minutes. Use -ctime -atime -mtime to specify days.
find . -cmin +30
same as above, but looks for files created/accessed/modified MORE than 30 minutes ago
xargs
xargs let you apply a comand to a list of arguments found by, for instance, find
find . -name interm -type d | xargs rm -r
find all directory that match “interm” and delete them
find . -mmin +100 -type f | xargs -I xxx mv xxx ~/tmp1/
finds all files (-type f) modified more than 100 minutes ago and then move them to ~/tmp1
-I xxx
tell xargs to put the arguments where the next occurrence of xxx
is
Some links
Unix Find Command Tutorial
Some examples of using UNIX find command
Hi Stefano,
When using find in combination with xargs, there it may be some errors occurring when there are files containing spaces or newlines.
To avoid this, you may want to use the -print0 option of find, and the -0 option of xargs:
find . -inmae “adsad” -print0 | xargs -0 echo