Confronta il contenuto di due cartelle, incluse le sottocartelle

3

Nel corso degli anni ho importato foto da iPhone a Mac e le ho organizzate in cartelle per mese.

Ora voglio importare tutte le foto che ho sull'iPhone e confrontarle con i file che ho organizzato in cartelle nel corso degli anni - se ce ne sono mancanti.

C'è qualche strumento (incluso in OSX o gratuito / acquistabile) o altra procedura che può confrontare il contenuto della cartella, con una cartella contenente i file in root e l'altra in molte sottocartelle?

    
posta Numbers 18.10.2014 - 18:33
fonte

2 risposte

5

Terminale: diff

Puoi confrontare due cartelle in Terminale usando il seguente comando:

diff -rq /path/to/folder1 /path/to/folder2

Per ignorare la gerarchia delle cartelle puoi copiare tutti i file da una cartella in una terza cartella, quindi confrontarli:

find /path/to/folder2 -mindepth 2 -type f -print -exec cp {} /path/to/folder3 \;
    
risposta data 18.10.2014 - 18:40
fonte
2

Questo è un vecchio thread, me ne rendo conto, ma sembra che la domanda non abbia ricevuto una risposta completa. Mi sono imbattuto in questo prima di provare a capire più o meno le stesse cose per me stesso, quindi ho pensato di pubblicare un'opzione nel caso in cui altri si imbattessero in esso ...

Alcune risposte erano quasi lì ... e il mio potrebbe essere fatto più facilmente, ma funziona!

Questo creerà un file con tutti i nomi delle tue foto:

find /Path/to/the/topmost folder/of/photos -mindepth 2 -type f -print | sed 's/^.*///' | sort > /tmp/photos-from-folders

Se ce ne sono in cartelle di proprietà di altri, aggiungi con sudo e usa > > per aggiungere quei nomi di file a quelli già nel file iniziale.

usa un comando simile per creare un secondo file contenente tutti i nomi di file delle foto del tuo telefono.

Puoi semplicemente fare un diff e inviarlo a un file con > oppure, se conosci il set più grande, usalo come file1 e fai

diff file1 file2 | egrep -v '<' > filediff-output

Ovviamente, tutti i percorsi sono stati spogliati dai sed nella ricerca iniziale per generare solo i nomi dei file. Se vedi qualcosa che potrebbe mancare, vuoi sapere dove si trova, quindi usa

sudo find /Path/to/the/topmost folder/of/photos -name 'filename-you-want' -ls

e questo ti dirà dove si trova.

Spero che questo aiuti. Mi ha aiutato a capire cosa devo tenere da una mia vecchia home directory che non è nella mia nuova home directory. 65 gig di spazio salvato!

    
risposta data 25.01.2017 - 13:32
fonte

Leggi altre domande sui tag