linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] bash scripting: muovere files

Giorgio Di Giovambattista digiovam a safe-mail.net
Mar 2 Lug 2013 20:47:13 UTC
Se ho ben capito devi spostare solo i file e non le eventuali dir.
Allora potresti usare 
for i in /* ; find ./ -type f -exec mv {} $i/ \; ; done

Spero di aver scritto tutto giusto.

Ciao

Giorgio Di Giovambattista


ollenotna2000 <ollenotna2000 a yahoo.it> 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
>
>-- 
>Info/Lamentele/Segnalazioni: andrea.gelmini a gmail.com

-- Inviato dal mio tablet con K-9 Mail.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lugbs.linux.it/pipermail/lug/attachments/20130702/053312be/attachment.html>


Maggiori informazioni sulla lista Lug