[Linuxtrent] Bash, cicli for e nomi di file con spazi vuoti: come fare?

  • From: "Maurizio Napolitano" <napoogle@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Fri, 15 Dec 2006 12:00:15 +0100

Ho una directory con questi file:
test.txt
test.jpg
test 1.txt
test 2.jpg
....

Con due righe di bash voglio spostare questi file nella directory /tmp
Allora procedo con questa istruzione

for i in `ls`; do mv $i /tmp; done

Mi nasce pero' questo problema: dato che ci sono dei file che hanno
nome con uno spazio vuoto, e il ciclo for usa come separatore della
lista dei valori proprio lo spazio vuoto,
la variabile $i non mi restituisce quello che voglio.
Per intenderci meglio, se uso invece che "mv", il comando "echo" ,
quindi
for i in `ls`; do echo $i ; done

ottengo questo output
test.txt
test.jpg
test
1.txt
test
2.jpg

invece che
test.txt
test.jpg
test 1.txt
test 2.jpg


Come posso risolvere il problema?
Sia chiaro che non mi servono soluzioni alternative
Es.
find . -type f -name '*' -exec mv {} /tmp/ \;

Voglio solo capire se ci sono soluzioni per quello che riguarda il
caso del for in bash

Ciao


--
Maurizio "Napo" Napolitano
http://www.linux.it/~napo
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: