Copying files with spaces in them
Chris F.A. Johnson
cfaj-uVmiyxGBW52XDw4h08c5KA at public.gmane.org
Wed Jan 28 23:59:05 UTC 2009
On Wed, 28 Jan 2009, Aviss,Tyler wrote:
> Wouldn't that still break on the spaces? If you have a file like "main
> data.dat", you will end up with two values of $file being:
> main
> data.data
No. Wildcards are expanded to filenames, no matter what characters
the names contain.
For example, try this in an empty directory:
touch a.txt "a b.txt" "c d.txt" "e f.txt" q.txt
printf "FILE: %s\n" *.txt
> While I agree that spaces may not be a good idea in general for many cases,
> how to make allowances for them in shell scripts?
>
>
> On 28-Jan-09, at 6:04 PM, "Chris F.A. Johnson" <cfaj-uVmiyxGBW52XDw4h08c5KA at public.gmane.org> wrote:
>
>> On Wed, 28 Jan 2009, Christopher Browne wrote:
>>
>>> I've got a Makefile that is trying to copy man pages into place;
>>> unfortunately, since they are (somewhat legitimately) created with
>>> spaces in them,
>>
>> There's NO excuse for that.
>>
>>> the following breaks:
>>>
>>> for file in $(wildcard man1/*) ; do \
>>> $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/man1 || exit;\
>>> done
>>> for file in $(wildcard man7/*) ; do \
>>> $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/man7 || exit;\
>>> done
>>>
>>> I'll bet Chris Johnson would have a better idiom he could suggest offhand
>>> ;-).
>>
>> A makefile is not a shell script. In a shell script, I would use:
>>
>> for file in man1/*
>> do
>> cp "$file" "$DESTDIR/$mandir"/man1 || exit
>> done
>>
>> --
>> Chris F.A. Johnson, webmaster <http://woodbine-gerrard.com>
>> ========= Do not reply to the From: address; use Reply-To: ========
>> Author:
>> Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
>> --
>> The Toronto Linux Users Group. Meetings: http://gtalug.org/
>> TLUG requests: Linux topics, No HTML, wrap text below 80 columns
>> How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
> --
> The Toronto Linux Users Group. Meetings: http://gtalug.org/
> TLUG requests: Linux topics, No HTML, wrap text below 80 columns
> How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
--
Chris F.A. Johnson, webmaster <http://woodbine-gerrard.com>
========= Do not reply to the From: address; use Reply-To: ========
Author:
Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
--
The Toronto Linux Users Group. Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
More information about the Legacy
mailing list