linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] Ancora bash, rename di directory e caratteri infami :(

Rampage * atomikramp a gmail.com
Mer 19 Gen 2011 10:03:14 UTC
Ciao ragazzi, perdonatemi se continuo ad assillarvi con queste domande
idiote, sto riscontrando (tanto per cambiare) un problema con il bash
scripting.

di fatto un tizio, grazie ad outlook che funziona sempre bene, ha fatto dei
danni immani all'albero delle cartelle IMAP del server di posta, e
ovviamente ha chiesto a me di riparare al danno.

in pratica il server è un dovecot, e le directory sono con il .

quindi io ho una cosa tipo
Maildir/.Directory.Sottodirectory.Sottodirectory

in pratica lavorando con outlook è successo che una normale directory di
tipo

".Posta Ricevuta.FORNITORI.a"
". Posta Ricevuta.FORNITORI.b"
è diventata
".Posta Ricevuta.FORNITORI.a.FORNITORI.a"
".Posta Ricevuta.FORNITORI.a.FORNITORI.b"

ecc ecc ecc

siccome le directory sono veramente TANTE (mortacci sua)
ho provato a fare un piccolo script per rinominare in batch e rimuovere la
parte centrale per riportare tutto allo stato originale delle cose.

lo script recita così:

for a in "$(ls -a | grep Bilance.FORNITORI)";do
    toremove="Adda Bilance.FORNITORI.";
    replacement="";
    echo "${a//$toremove/$replacement}";
done

e fin che c'è l'echo va tutto bene.. i nomi vengono stampati correttamente a
video, senza fare una grinza.. FANTASTICO!!

eehh no :)
perchè se io faccio questa piccola modifichina

for a in "$(ls -a | grep Bilance.FORNITORI)";do
    toremove="Adda Bilance.FORNITORI.";
    replacement="";
    mv "$a" "${a//$toremove/$replacement}";
done

tutto scoppia e mi viene restituito un errore tipo

percorso troppo lungo, e nell'output vedo che concatenato al nome della
directory c'è un /n che non so da dove salta fuori.

cosa sbaglio?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lugbs.linux.it/pipermail/lug/attachments/20110119/de257668/attachment.html>


Maggiori informazioni sulla lista Lug