Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Apr 2004 11:33:29 +0100
From:      Peter Risdon <peter@circlesquared.com>
To:        FreeBSD Question List <freebsd-questions@freebsd.org>
Subject:   Problems with filename with spaces (was Pipes and commands thatrequire two arguments)
Message-ID:  <407BC1F9.4050305@circlesquared.com>
In-Reply-To: <20040408165511.GD8182@dan.emsphone.com>
References:  <40757879.1010307@circlesquared.com> <20040408165511.GD8182@dan.emsphone.com>

index | next in thread | previous in thread | raw e-mail

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:
/usr/home/user/this\
and at:
is\
and at:
a\
and 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;' > 
listofdodgyfiles

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 
mentioned above.

I'm sure I'm missing something obvious... Any nudges in the right 
direction would be gratefully received.

PWR.



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?407BC1F9.4050305>