Pagina 1 di 1
[Risolto]ordinare files estratti da hard disk corrotto
Inviato: domenica 6 gennaio 2019, 16:03
da gigix058
Gentilissimi, buon pomeriggio e buona Epifania. Come si intuisce dal titolo, ho recuperato dati da un hard disk defunto, ed ovviamente sono venuti fuori dati alla rinfusa, a seconda del settore occupato nel disco. Vorrei ricreare un ordine fungibile dei files contenuti nelle oltre 600 cartelle di recupero. Visto che, ahimè, avevo files di diverso tipo nel disco esterno, ho bisogno di creare vari script basati su alcuni metadati contenuti nei files: ad esempio, voglio recuperare le fotografie per:
1) modello fotocamera/cellulare
2) anno
3) mese
4) giorno;
con ciò intendo che giorno è una sottocartella di mese, mese è sottocartella di anno, anno è sottocartella del modello, nella classica struttura ad albero; così, se vi sono fotografie (e ve ne sono) scattate con il cellulare, non finiscono nelle foto scattate con una macchina fotografica;
musica:
1) cartella autore
2) cartella album
3) file con titolo del brano preso dai metadati;
video:
modello videocamera/cellulare
anno/mese/giorno;
files word, excel, pdf tutti in una cartella, poi vedo manualmente che ci sta
files .exe tutti in una cartella
archivi dei programmi ubuntu in un'altra cartella.
files residui: vi dovrebbero essere files android, al momento non ho idea di come sistemarli, poi mi faccio venire un'idea in mente.
Ciò che vorrei, però, è essere anche spiegato il contenuto dello script, così da poterlo modificare in seguito, all'occorrenza, e come renderlo eventualmente eseguibile.
Grazie a tutti per l'aiuto
Re: ordinare files estratti da hard disk corrotto
Inviato: lunedì 7 gennaio 2019, 9:21
da steff
Nella mia raccolta ho uno script che copia e rinomina le foto:
Codice: Seleziona tutto
#!/bin/bash
#rinomina *jpg da photorec per data exif .
# Cambia $4 in $4$5 se vuoi anche hour:minutes:seconds
#Crea cartella ~/lost-jpg e esegui il comando dalla cartella che contiene il recup_dir-*
for i in recup_dir/*.jpg; do cp $i ~/lost-jpg/`exiv2 -p s $i | grep timestamp | awk '{print $4 $1 $5}'`.jpg; done
Ovviamente è solo una base da poter partire forse.
PS: Vedo che qui ci sono script migliori:
https://www.cgsecurity.org/wiki/After_U ... _extension
Re: ordinare files estratti da hard disk corrotto
Inviato: lunedì 7 gennaio 2019, 11:12
da gigix058
quindi se io volessi riscrivere a mio uso e consumo uno script per il recupero delle immagini? Se avviassi uno script "generico" sposterebbe tutte le immagini in una cartella, prendendo anche le immagini dei programmi salvati in memoria, invece a me serve scrivere (non sono un informatico, purtroppo, ma mi sa che nel 2019 qualche linguaggio lo devo per forza imparare) qualcosa che identifichi il modello della fotocamera dai dati exif e cataloghi i files per anno-mese-giorno. Si può fare?
Re: ordinare files estratti da hard disk corrotto
Inviato: lunedì 7 gennaio 2019, 20:58
da steff
Si può fare ma perché non usare questo?:
Using a more complex Python script
There is a more extended Python program sort-PhotorecRecoveredFiles that does the following things with your recovered data:
Sort all files by file extensions into own folders.
Limit the number of files/folder by creating subfolders if a certain numbers is exceeded. The file/folder number can be customized.
For all jpgs: put them into own folders per year when they have been created (EXIF-Data). Within a year folders for every event are created, e.g. all photos taken at one weekend or vacation are sorted into one folder.
- crea cartelle per ogni estensione (eventualmente con sottocartelle) e ci butta i relativi file
- mette le immagini dentro jpg/anno/evento
Re: ordinare files estratti da hard disk corrotto
Inviato: martedì 8 gennaio 2019, 11:36
da gigix058
Perché non voglio copiare e incollare istruzioni ma capire cosa faccio e modificare le istruzioni a mio uso e consumo per iniziare ad imparare il linguaggio
Re: ordinare files estratti da hard disk corrotto
Inviato: martedì 8 gennaio 2019, 12:08
da steff
Quale linguaggio?
Re: ordinare files estratti da hard disk corrotto
Inviato: giovedì 10 gennaio 2019, 13:13
da gigix058
beh, penso che bash sia il linguaggio più opportuno, per queste operazioni. O no...?
Re: ordinare files estratti da hard disk corrotto
Inviato: giovedì 10 gennaio 2019, 13:32
da gigix058
Comunque, leggendo un po', ho provato con il comando find da terminale ed ho digitato:
Codice: Seleziona tutto
find /media/andrea/'Seagate 4TB'/recup_dir* -name \*.cr2 -exec mv {} /media/andrea/'Seagate 4TB'/Model/DateTime \;
nel tentativo di leggere dagli exif dei files raw delle mie fotocamere il modello e la data della foto...
terminale mi restituisce:
Codice: Seleziona tutto
mv: impossibile spostare '/media/andrea/Seagate 4TB/recup_dir.647/f3895796016.cr2' in '/media/andrea/Seagate 4TB/Model/DateTime': File o directory non esistente
che specifiche devo aggiungere? Model e DateTime li ho letti con Rawtherapee, e speravo nel
potere della botta di fortuna.
Però prenderò almeno mp3, mpeg, mov, avi, pdf, .doc .xls, odf, ods, exe per ordinarli in cartelle per estensione...
Re: ordinare files estratti da hard disk corrotto
Inviato: giovedì 10 gennaio 2019, 14:40
da UbuNuovo
Non puoi scrivere codice a caso!
In quel modo dove usi exiftool o simili?
Ti è stato proposto uno script che fa proprio quello che ti serve; cerca di capire quel codice, oltretutto comprensibilissimo.
Mi sembra inutile riscrivere le stesse cose in un altro linguaggio.
Re: ordinare files estratti da hard disk corrotto
Inviato: giovedì 10 gennaio 2019, 19:49
da gigix058
E chi vuole scrivere codice a caso?
Ho appunto chiesto di essere spiegato l'errore/gli errori...
Ho anche scritto che non ne so nulla di programmazione e non voglio copiare ad catsum canis codice che non so cosa faccia, come farebbe un imbecille, ma voglio fare una cosa fatta per bene, capendo come e dove modificare il codice per il mio metodo di archiviazione. Sarà comprensibilissimo a te, il linguaggio, ma non abbiamo tutti lo stesso livello di conoscenze, e credo che sia saccente, poco garbato oltreché di scarso aiuto il tuo commento.
Mi sembra inutile riscrivere le stesse cose in un altro linguaggio.
Si dà il caso che anche lo script gentilmente postato precedentemente fosse in bash... Ba(s)h!
Re: ordinare files estratti da hard disk corrotto
Inviato: giovedì 10 gennaio 2019, 22:33
da UbuNuovo
È proprio perché hai detto che "non vuoi usare codice che non capisci" che mi ha colpito la tua riga di codice!
Qualche consiglio e poi non intervengo più.
Non usare il globbing sul path di find, usa il path della directory superiore, find opera ricorsivamente di default.
Invece di quotare parti interne al path quotalo ad inizio e fine, risulta più comprensibile; per esempio, invece di:
usa
quota l'espressione dopo '-name', si individua meglio la particella rispetto all'escape, per esempio:
quota anche il segnaposto di '-exec', per esempio:
il tuo codice, probabilmente funzionerebbe ugualmente, perché photorec crea file e directory senza spazi nei nomi, ma è consigliabile prendere come abitudine quotare.
per eseguire mv, cp etc.,
le directory di destinazione devono esistere!
Prima di eseguire lo spostamento devi fare varie operazioni: estrazione dati exif; estrazione anno, estrazione mese, estrazione giorno, dalla data exif e in base a questi dati creare le relative directory di destinazione (se non esistono già) e solo alla fine potrai fare lo spostamento.
Per questo motivo devi fare un ciclo su quanto trovato da find.
Inoltre, visto che devi spostare vari tipi di file, non ti conviene eseguire un find per ogni tipo.
Io cercherei tutti i file con find e all'interno del ciclo individuerei i tipi di file (per estensione o con il comando 'file') e poi eseguirei il codice più adatto per maneggiare quel tipo di file.
Codice: Seleziona tutto
while read f;do
if IL TIPO DI FILE È JPG;then
elaborazioni per i file jpg
elif IL TIPO DI FILE È MP3;then
elaborazioni per i file MP3
elif IL TIPO DI FILE È MP4;then
elaborazioni per i file MP4
...
else
elaborazione per tutti gli altri tipi di file
fi
done < <(find 'DIR_GENITORE' -type -f )
Preserva sempre i dati originali, lavora su una copia e/o prima di fare gli spostamenti simula mettendo 'echo' davanti al comando, per esempio:
Re: ordinare files estratti da hard disk corrotto
Inviato: giovedì 10 gennaio 2019, 22:54
da gigix058
grazie, adesso sei stato più "simpatico"
comunque sono rimasti solo i cr2 e i jpg, gli altri tipi di file li ho spostati già con find, la cui sintassi ho trovato molto comprensibile. Domani studio meglio il tuo suggerimento perchè le cartelle "/modello della fotocamera/anno/mese" esistono già, ma forse il linguaggio non sa che il nome della directory e di quei numeretti nelle sub sono proprio le cartelle di destinazione
Re: ordinare files estratti da hard disk corrotto
Inviato: sabato 12 gennaio 2019, 11:55
da gigix058
sempre con find, ho spostato anche cr2 e jpg in cartelle apposite per tipo file. Non ho più la distinzione per fotocamera, però almeno ho la cartella raw e la cartella jpg.
Per chi, come me, ne sapesse poco o nulla di programmazione, lascio una riga generica sul funzionamento di find:
Codice: Seleziona tutto
find /percorso/origine/'metti gli apici singoli se ci sono spazi nel nome della directory' -oggettoricercato \*.estensione -comando {} /percorso/destinazione