[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT: Need help from bash experts...



hi neal

i think you also need to watch out for other ms windoze gotchas

space in filenames are easy to handle...

more common problems for tar, cp and other unix utils ...
	/home/me/tom's proposal/
		ticks is a major problem

	/home/me/ leading spaced names/
	
	/home/me/windoze_user/for fun:/		or was it $

	/home/me/windoze_user/' things on sale for $1.oo'
		- using '  to signify users choices of ms filenames

	in the file name that windoze allows that is NOT valid in *nix

ie... pre-process your list of illegal file names before coming from
  windoze to *nix...or you'll have some problems...

it also seem to have depended on which linux distro, which samba version
and tar, find, cp that had varying degree of "$!@#$%^" those file names
again

have fun
alvin

On Mon, 11 Feb 2002, Neal Lippman wrote:

> Sorry for OT posting; I am not sure if there is a newsgroups for bash 
> experts, so I figured I'd try here.
> 
> I need to be able to write a bash script that can copy files from a directory 
> who's name includes a space (long story, but it's a windows directory under 
> Win98 on a machine on my network).
> 
> Anyway, supposing that the directory is "/mount/windows/spaced name" and I 
> need to copy all of the files in the directory to a target.
> 
> At a bash prompt, I can issue either:
> cp "/mount/windows/spaced name/*" target 
> OR
> cp /mount/windows/spaced\ name/* target
> and all works fine.
> 
> However, from within a bash script, something like:
> 
> #!/bin/sh
> sourcedir=/mount/windows/spaced\ name
> cp $sourcedir/* target
> 
> fails, because the space isn't properly passed to cp, AND further the shell 
> doesn't do expansion on the wild card in the file name.
> 
> I have tried all sorts of variants:
> sourcedir="/mount/windows/spaced\ name"
> sourcedir="/mount/windows/spaced\\ name"
> sourcedir=/mount/windows/spaced\\ name"
> 
> and the cp command with various quotes and not quotes, and cannot seem to get 
> this to work. Within the script, if I try:
> 
> sourcedir="mount/windows/spaced\ name"
> anotherdir="mount/windows"
> echo $sourcedir/*
> echo $anotherdir/*
> 
> the first echo shows that there is no expansion of the wild card, while the 
> second echo works as expected, echoing the name of every file in 
> /mount/windows.
> 
> Clearly the problem is that dreadful space in the directory name. Any help on 
> how to syntax this greatly appreciated.
> 
> Thanks.
> N
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-user-request@lists.debian.org 
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 



Reply to: