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

  • From: Flavio Visentin <THe_ZiPMaN@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sat, 16 Dec 2006 20:28:50 +0100

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> ls|while read i; do mv "$i" /tmp; done
>  
>> ls -1 | while read i ; do mv "$i" /tmp ; done
> 
> e che cambia?

Cambia che se hai più file normalmente ls li lista in 4 colonne, quindi
se ometti il "-1" la variabile i assume il valore di tutta la linea,
quindi di files inesistenti.

>> for i in * ; do mv "$i" /tmp ; done
> 
> questo è simpatico, e mi pare del tutto equivalente...

Non proprio. Rispetto a quello precedente non funzionerebbe nel caso di
un elevato numero di files nella directory, visto che la bash
espanderebbe il "*".
La forma con il while invece non soffre di questo problema.


- --
Flavio Visentin
GPG Key: http://www.zipman.it/gpgkey.asc

There are only 10 types of people in this world:
those who understand binary, and those who don't.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFFhEjyusUmHkh1cnoRAoIsAJ915EdWz+j3PjuHLaumU4NZpxeI4wCeKA+l
Fr9nF9PDR4cwDGoDca8R+dk=
=fKl0
-----END PGP SIGNATURE-----
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: