linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] bash scripting: muovere files

Furio furio.settimi a gmail.com
Mar 2 Lug 2013 20:06:17 UTC
for d in *;do cd $d; mkdir vecchi; mv * vecchi/ ; cd ../ ;done
si che va

Il 02/07/2013 21:50, ollenotna2000 ha scritto:
> Il 02/07/2013 21:06, ollenotna2000 ha scritto:
>> Ho una serie di directory:
>> nome1, nome2 ... nomeN
>>
>> voglio in ognuna di queste directory creare una sottodirectory e in
>> questa spostare tutti i files presenti nella directory stessa.
>> esempio prima:
>>
>> dir1
>>    file 1
>>    file 2
>>    file 3
>>
>>
>> dopo:
>>
>> dir1
>>     sottodir1
>>          file 1
>>          file 2
>>          file 3
>>
>> la prima parte, cioè la creazione della sottodirectory, la ottengo con:
>>
>> for dir in */; do mkdir -- "$dir/vecchi"; done
>>
>> ora mi manca lo spostamento dei files...
>>
>> for dir in */; do mkdir -- "$dir/vecchi";mv "$dir/*" "$dir/vecchi"; done
>>
>> mi ritorna errore:
>>
>> mv: impossibile eseguire stat di "dir1//*": File o directory non 
>> esistente
>>
>> che sbaglio?
>>
>> Antonello
>>
>
> avrei trovato:
>
> for dir in */; do cd "$dir"; mv -t vecchi *;  cd ..; done
>
> e fa quello che voglio, ma insieme mi ritorna l'errore: non posso 
> copiare una directory ricorsivamente in se stessa, perche * cprende 
> tutto, files e dir. come faccio a non avere questo warning?
>
> Antonello
>



Maggiori informazioni sulla lista Lug