mezery ve jmene souboru a shell interpretace

Tomas Hala thala na pef.mendelu.cz
Pondělí Březen 3 22:56:16 CET 2008


# Ahoj vsem,
# potrebuju pracovat se soubory ktere maji v sobe mezeru.
# No a jak urcite vetsina z vas vi, shell to nedokaze jednoduse vyresit.
# Priklad:
# n1:~/tmp$ for i in `find . -name '* *'` ; do ls -l $i ; done
# ls: ./a: No such file or directory
# ls: .txt: No such file or directory
# ls: ./a: No such file or directory
# ls: b.txt: No such file or directory
# n1:~/tmp$ ls -l
# total 0
# -rw-r--r--  1 honza  users  0 Mar  3 20:43 a .txt
# -rw-r--r--  1 honza  users  0 Mar  3 20:43 a b.txt
# Jde to prosim nejak elegantne obejit?
# diky
# s pozdravem
# Jan Burdil

Zdravím,
měly by pomoci uvozovky a jedno zpětné lomítko: 
for i in `find . -name '*\ *'` ; do ls -l "$i" ; done

Tomáš Hála
 
# ------------------------------
# 
# Message: 11
# Date: Mon, 3 Mar 2008 21:48:03 +0100
# From: Marian Cavojsky <cavo+konf na cavo.sk>
# Subject: Re: mezery ve jmene souboru a shell interpretace
# To: Diskuse o Linuxu v cestine <linux na linux.cz>
# Message-ID: <20080303204803.GD11163 na stone.cavo.sk>
# Content-Type: text/plain; charset=iso-8859-2
# 
# On Mon, Mar 03, 2008 at 08:49:27PM +0100, Jan Burdil wrote:
# > Ahoj vsem,
# > potrebuju pracovat se soubory ktere maji v sobe mezeru.
# > No a jak urcite vetsina z vas vi, shell to nedokaze jednoduse vyresit.
# > 
# > Priklad:
# > 
# > n1:~/tmp$ for i in `find . -name '* *'` ; do ls -l $i ; done
# > ls: ./a: No such file or directory
# > ls: .txt: No such file or directory
# > ls: ./a: No such file or directory
# > ls: b.txt: No such file or directory
# > 
# > n1:~/tmp$ ls -l
# > total 0
# > -rw-r--r--  1 honza  users  0 Mar  3 20:43 a .txt
# > -rw-r--r--  1 honza  users  0 Mar  3 20:43 a b.txt
# > 
# > Jde to prosim nejak elegantne obejit?
# 
# pozrite si manualove stranky ku find a xargs
# 
# find . -name '* *' -print0 | xargs --null ls 
# 
# for je na toto naozaj nevhodne. Ak potrebujete pre kazdy subor spustit
# jeden prikaz pozrite si v xargs prepinace --replace a --max-args.
# 



Další informace o konferenci Linux