cd to folder with spaces - in a script

Bill Davidsen davidsen at tmr.com
Fri May 22 21:19:21 UTC 2009


Patrick O'Callaghan wrote:
> On Thu, 2009-05-21 at 19:40 +0200, Michael Casey wrote:
>> How can I cd into a dir, when it contains spaces, and I need to use it
>> in a script?
>>
>> the directory:
>> /home/user/this is a folder/something
>>
>> normally I would use:
>> cd /home/user/this\ is\ a\ folder/something/
>>
>> but in a script I cant just add the "\"
>> like:
>>
>> find . -type d | while read FOLDER; do cd $FOLDER; done
> 
As noted, use double quotes.

> One way:
> 
> echo "`find . -type d `" | while read FOLDER ... etc.
> 
> (assumes no argument overflow in the Shell)
> 
> There are bound to be other ways.

Warning, if you use xargs for similar things, use 'print0' for the find and '-0' 
on the xargs:
   find ~ -type f -size +50k -print0 | xargs -0 ls -s | sort -n

or similar.

-- 
Bill Davidsen <davidsen at tmr.com>
   "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot




More information about the fedora-list mailing list