[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [bash] rimuovere spazi nel nome dei file e delle directory.



Ciao,

Il Lun, 6 Giugno 2011 12:42 am, gollum1 ha scritto:
>> come da oggetto, vorrei fare uno script che mi rimuova tutti gli spazi
>> (sostituendoli con il carattere underscore) partendo da una directory,
>> e per tutte le sue sottodirectory e file in esse contenute.

> cercando con google alla fine ho trovato questo script:
> http://bash-script.b2com.org/articoli/eliminare-spazi-dai-nomi-
> dei-file.php ma secondo me si pu� ancora migliorare... (funzionare

Prendendo dallo script l'idea "find|while read", potresti provare questa:

find -depth -type d|while read d;do pushd "$d";rename 'y/ /_/' *;popd;done

ATTENZIONE: non rinomina i file che iniziano con "." (punto)! (puoi
provare con "* .*" al posto di "*")

ATTENZIONE! L'applicazione non e` iniettiva: se una dir contiene i tre nomi
"A B C", "A_B C" e "A B_C"... solo uno di questi potra` essere rinominato.

ATTENZIONE: per quanto appena detto, la procedura non puo` essere
reversibile! Se la esegui "all'indietro" con 'y/_/ /', converti in spazi
anche i caratteri che erano gia` "_" (tratto basso) "prima della cura"!

...un carattere decisamente poco usato nei nomi file, soprattutto da
alcuni altri sistemi operativi, dovrebbe essere ":" (due punti). Ci
sarebbe anche "\" (barra inversa), ma questa facilmente ti da' dei
grattacapi anche con bash...

Ciao,
m

-- 
http://bodrato.it/software/strassen.html
http://www.referendumacqua.it/


Reply to: