[Soci SLIP] riorganizzare directories

Paolo Craveri pcraveri a gmail.com
Ven 18 Feb 2011 11:40:31 CET


Grazie!

Il 17 febbraio 2011 19:29, Loredana Lo Conte <llcfree a gmail.com> ha scritto:
> 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

questa era la cosa che mi mancava!

>
> # 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

sono all'ABC del python, provo con il modulo os (os.path, ecc.)

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
>
>
>
>
>
> _______________________________________________
> Soci mailing list
> Soci a mail.pinerolo.linux.it
> https://liszt.softwareliberopinerolo.org/vecchiamlsoci/
>

Grazie!

-- 
--
Paolo C.




Maggiori informazioni sulla lista Soci