[Soci SLIP] riorganizzare directories
Loredana Lo Conte
llcfree a gmail.com
Gio 17 Feb 2011 19:29:08 CET
On Thu, 2011-02-17 at 10:26 +0100, Paolo Craveri wrote:
> >> capita che su un pc (dual boot win+linux) sul quale mettono le mani in
> >> molti si è creato, nella partizione win, un albero di directory simile
> >> a questo (molto semplficato):
> >> |-- computi
> >> |-- comune
> >> |-- delibere
> >> |-- lavori
> >> |-- lettere
> >> |-- preve
> >> `-- temp
> >> |-- computi
> >> |-- comune
> >> |-- delibere
> >> |-- lavori
> >> |-- lettere
> >> `-- preve
> >>
> >> ho trascurato il terzo livello dell'annidamento per semplicità.
> >
> > E ovviamente il numero di livelli e' finito. O no?
>
> Non proprio infinito...
Non e' infinito se non ci sono cicli. Basta che non ci siano link
nella struttura delle cartelle che formino cicli.
> esempio: il file "pippo.odt " è stato modifcato da utenti diversi
> nella cartella "computi" nei diversi livelli.
> Rinuncio a cercare di creare un file "pippo.odt" unico che tenga conto
> delle diverse modifiche. Mi basta il file pippo.odt aggiornato più
> recentemente.
> stesso file= stesso nome di file
# mi sono creata questa struttura di test:
mkdir delibere
mkdir -p temp/delibere
mkdir -p temp/temp/delibere
# modifico i files (mettici un secondo tra
# uno e l'altro)
touch delibere/pippo.odt
touch temp/delibere/pippo.odt
touch temp/temp/delibere/pippo.odt
touch temp/temp/delibere/paperino.odt
touch temp/delibere/paperino.odt
touch delibere/paperino.odt
find . -type f -printf "%f\t%T@\t%h\n" | sort -r -k1,2
# genera:
pippo.odt 1297965995.2991108950 ./temp/temp/delibere
pippo.odt 1297965984.1271105810 ./temp/delibere
pippo.odt 1297965975.2751102480 ./delibere
paperino.odt 1297966025.4751116370 ./delibere
paperino.odt 1297966014.9271121540 ./temp/delibere
paperino.odt 1297966003.9871098390 ./temp/temp/delibere
La prima occorrenza di ogni nome di file e' l'ultima modificata,
la seconda colonna e' la data in cui e' stata modificato il file,
espressa in secondi a partire dal 1 gennaio 1970 GMT, la terza
e' la cartella in cui trovi il file modificato per ultimo.
Io salverei l'output in un file (per documentazione) e ci farei
girare sopra un programmino perl che muove i files da dove sono
a dove devono andare a finire (solo il primo, salta quelli con
lo stesso nome).
NOTA: funziona solo con nomi di files decenti (no spazi etc).
I tuoi lo sono? Se no, bisogna complicarsi la vita, ma non
di molto.
Loredana
Maggiori informazioni sulla lista
Soci