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

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



Ciao All,

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.

ho provato con rename:

rename "s/ /_/g" $ORIG*

ma questo funziona solo nel primo livello ($ORIG), tralasciando tutto quello 
contenuto in eventuali sottodirectory.

ho provato anche con find

find $ORIG | rename "s/ /_/g" -v

ma mi da errore, perché una volta rinominato una directory, tutti gli elementi 
in essa contenuti praticamente non esistono più... e quindi non possono essere 
rinominati (fanno riferimento al nome precedente della directory che li 
conteneva).

ho provato anche a farlo in due step, uno mettendo il rename solo per le 
directory e successivamente per i file... ma non funziona comunque, sempre per 
lo stesso motivo precedente...

find $ORIG -type d | rename "s/ /_/g" -v

qualcuno ha idea di come potrei procedere? anche perché poi dovrei anche fare 
il passaggio opposto, una volta completato il lavoro che devo fare su questi 
file (lavoro che non posso fare se ci sono degli spazi nei nomi).

Byez
-- 
Gollum 1
Tessssssoro, dov'é il mio tesssssssoro...


Reply to: