find and find -depth -print
what is difference ?
-depth
simply means that the contents of a directory are processed before the the directory itself:
pax> find /tmp
/tmp
/tmp/.X11-unix
/tmp/pax
/tmp/sort444444
/tmp/sort544444
/tmp/sort644444
/tmp/sort744444
/tmp/XWin.log
pax> find /tmp -depth
/tmp/.X11-unix
/tmp/pax
/tmp/sort444444
/tmp/sort544444
/tmp/sort644444
/tmp/sort744444
/tmp/XWin.log
/tmp
-print
means that each item is printed to standard output. This is often the default on system where you don't specify an action but I've seen some that default to doing nothing (not very useful in my opinion).
You're probably better off (if your system supports them) explicitly using -print0
if you're going to be piping the output to xargs
(and use xargs -0
). This will remove problems of spaces in filenames.