Problems with filename with spaces (was Pipes and commands
thatrequire two arguments)
peter at circlesquared.com
Tue Apr 13 03:29:18 PDT 2004
Thanks very much for the previous help - I missed the example in man xargs.
The files I am trying to manipulate include spaces in the file names,
and I cannot seem to escape them effectively. If I try something like:
#find /usr/home -name *.rtf.exe -print0 | perl -p -e 's/\ /\\\ /g;' |
xargs -0 -J % mv % /usr/newplace/
Then although all spaces are preceded by backslashes I get errors every
time a space is encountered. So for a file at /usr/home/user/this is a
file.rtf.exe I get file does not exist errors from mv at:
file.rtf.exe (yes, a windows virus on a network share has been busy).
I have also tried
#find /usr/home -name *.rtf.exe -print0 | perl -p -e 's/\ /\\\ /g;' >
and the list is fine. If I paste a line into mv on the command line, it
works. If I use a simple script to read the file, same errors as
I'm sure I'm missing something obvious... Any nudges in the right
direction would be gratefully received.
More information about the freebsd-questions