Il 13 ottobre 2012 16:16, Alessandro T. <taglia...@yahoo.it> ha scritto:
[...] > Innanzitutto non uso e spero di non dover mai usare ntfsundelete, purtroppo sul computer al lavoro ho windows, e purtroppo ho fatto una stronzata e mi sono cancellato tutti i file che avevo nella directory dei documenti (e il backup? ecco... la stronzata l'ho fatta mentre cercavo di fare una sincronizzazione della cartella con una cartella sul mio serverino). > Quindi sì: è possibile fare il tutto con un pipe se generi al volo > "test_undelete.txt" e lo passi (via pipe ;-) ) ad awk. purtroppo non ci sono riuscito, ma per ora non importa... ho fatto quello che devo fare (ora devo rivedermi 13GB di dati recuperati). > Il tutto nell'attesa dei tuoi script ;-) Li allego immediatamente, tenendo in considerazione che io partivo da una pendrive, con installato debian, e i tre script si trovavano nella directory /root, da qui l'uso dei path assoluti nel lancio dei diversi script. breve escursus sulla soluzione che ho adottato: 1) lo script principale riceve in ingresso due parametri: la partizione da recuperare e la directory dove devono essere riversati i file recuperati (ntfs non modifica il device da recuperare). 2) lo script principale genera l'elenco dei file che devo recuperare con ntfsundelete e passa questo elenco in pipe al secondo script (script awk) 3) ho dovuto fare uno script awk separato, in quanto non riuscivo a matchare il carattere "virgoletta singola", che mi mandava in errore lo script bash. 4) lo script awk elabora solo i dati che possono essere recuperati (secondo l'indicazione di ntfsundelete) e che hanno dimensione diversa da 0, restituisce in output l'inode del file da recuperare, e il nome del file ripulito da spazi virgolette singole e doppie e carattere $, oltretutto al nome viene aggiunto il numero di riga dell'elenco dei file da recuperare, in modo da rendere i nomi univoci e poter recuperare anche file che hanno lo stesso nome. 5) metto il numero subito prima del primo punto, che si trova nel nome, o in coda al nome, se non ci sono punti, per fare in modo che rileggendo i possano essere considerati con l'ordine alfabetico originale, e con l'estensione corretta. 6) i dati restituiti dallo script awk ritornano allo script principale, che, sempre in pipe, attraverso xargs lo spedisce al terzo script. 7) il terzo script non fa altro che richiamare ntfsundelete con gli argomenti corretti per poter recuperare il file indicato, si è reso necessario l'uso di un terzo script, perché non sono riuscito a ordinare e inserire nella posizione corretta i parametri restituiti da xargs, quindi richiamando uno script esterno, ho potuto usare gli argomenti presi dalla linea di comando e riordinarli. 8) avevo provato ad usare una funzione interna, per evitare il terzo script, ma non so per quale motivo bash continuava a darmi errori sulla definizione della funzione. spero che possa tornare utile a qualcun'altro, e che magari faccia da base per qualcosa che riporti tutto in un unico script. Byez -- Gollum1 Tesssssoro, dov'é il mio tessssoro...
recovery.sh
Description: Bourne shell script
recupero_ntfs.awk
Description: Binary data
recupero_ntfs.sh
Description: Bourne shell script