find: Safe File Name Handling

 
 3.3.2.2 Safe File Name Handling
 ...............................
 
 Here is how to make 'find' output file names so that they can be used by
 other programs without being mangled or misinterpreted.  You can process
 file names generated this way by giving the '-0' or '--null' option to
 GNU 'xargs', GNU 'tar', GNU 'cpio', or 'perl'.
 
  -- Action: -print0
      True; print the entire file name on the standard output, followed
      by a null character.
 
  -- Action: -fprint0 file
      True; like '-print0' but write to FILE like '-fprint' (⇒Print
      File Name).  The output file is always created.
 
    As of findutils version 4.2.4, the 'locate' program also has a
 '--null' option which does the same thing.  For similarity with 'xargs',
 the short form of the option '-0' can also be used.
 
    If you want to be able to handle file names safely but need to run
 commands which want to be connected to a terminal on their input, you
 can use the '--open-tty' option to 'xargs' or the '--arg-file' option to
 'xargs' like this:
 
      find / -name xyzzy -print0 > list
      xargs --null --arg-file=list munge
 
    The example above runs the 'munge' program on all the files named
 'xyzzy' that we can find, but 'munge''s input will still be the terminal
 (or whatever the shell was using as standard input).  If your shell has
 the "process substitution" feature '<(...)', you can do this in just one
 step:
 
      xargs --null --arg-file=<(find / -name xyzzy -print0) munge