Bandingkan konten dua folder, termasuk subfolder

3

Selama bertahun-tahun saya telah mengimpor foto dari iPhone ke Mac dan mengaturnya dalam folder per bulan.

Saya sekarang ingin mengimpor semua foto yang saya miliki di iPhone dan membandingkannya dengan file-file yang telah saya kelola dalam folder selama bertahun-tahun - jika ada yang hilang.

Apakah ada alat (termasuk dalam OSX atau gratis / dapat dibeli) atau prosedur lain yang dapat membandingkan konten folder, dengan satu folder menahan file di root dan yang lainnya di banyak subfolder?

Numbers
sumber
Bandingkan apa? jumlah file, ukuran, jenis, konten?
Buscar웃
Membandingkan keberadaan file, jika hilang / duplikat.
Numbers
Itu dapat Anda lakukan dengan perintah Terminal sederhana "diff -rq folder1 folder2"
Buscar웃
Banyak yang berkaitan dengan pertanyaan 10252 .
yurkennis

Jawaban:

5

Terminal: diff

Anda dapat membandingkan dua folder di Terminal menggunakan perintah berikut:

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

Untuk mengabaikan hierarki folder, Anda dapat menyalin semua file dari folder ke folder ketiga, lalu membandingkannya:

find /path/to/folder2 -mindepth 2 -type f -print -exec cp {} /path/to/folder3 \;
grg
sumber
1
Bagaimana saya memeriksa semua file dalam folder, termasuk yang ada dalam subfolder? Subfolder tidak akan sama di folder induk pembanding.
Numbers
@Nomor, saya yakin saya salah mengerti pertanyaan Anda; Saya tidak berpikir Anda bisa melakukan itu tetapi Anda dapat menyalin semua foto dari subfolder ke dalam folder satu detik untuk perbandingan. Tentu ini tergantung berapa banyak foto yang Anda miliki.
grg
1
Ini 25 GB dan 100 folder dan saya ingin menyimpannya di folder. Tapi aku akan menemukan jalan.
Numbers
1
@Jumlah Saya mengerti Anda ingin menyimpannya di folder — maksud saya menyalinnya hanya untuk perbandingan, lalu menghapus yang disalin. Misalnya, menjalankan sesuatu seperti find /path/to/folder2 -mindepth 2 -type f -print -exec cp {} /path/to/folder3 \;, lalu diff, lalu hapus folder3.
grg
2

Saya menyadari ini adalah utas lama, tetapi sepertinya pertanyaan itu tidak sepenuhnya dijawab. Saya sengaja menemukan ini sebelum mencoba untuk mencari tahu kira-kira hal yang sama untuk diri saya sendiri, jadi saya pikir saya akan memposting pilihan jika orang lain tersandung di atasnya ...

Beberapa jawaban sudah hampir sampai ... dan jawaban saya mungkin dilakukan dengan lebih mudah, tetapi berhasil!

Ini akan membuat file semua nama foto Anda:

temukan / Path / ke / folder / paling atas / foto -langkah 2 -type f -print   | sed 's /^.*///' | sortir & gt; / tmp / foto-dari-folder

Jika ada di folder yang dimiliki oleh orang lain, awali dengan sudo dan gunakan & gt; & gt; untuk menambahkan nama-nama file ke yang sudah ada di file awal.

gunakan perintah serupa untuk membuat file kedua yang berisi semua nama file foto ponsel Anda.

Anda bisa melakukan diff dan mengirim ke file dengan & gt; atau, jika Anda tahu set mana yang terbesar, gunakan itu sebagai file1 dan lakukan

diff file1 file2 | egrep -v '& lt;' & gt; -diffiff-output

Tentu saja, semua jalur telah dilucuti oleh sed dalam pencarian awal untuk menghasilkan hanya nama file. Jika Anda melihat sesuatu yang mungkin hilang, Anda ingin tahu di mana itu, jadi gunakan

sudo find / Path / ke / folder / paling atas / dari foto-nama   'nama file yang Anda inginkan' -l

dan itu akan memberi tahu Anda di mana itu.

Semoga ini membantu. Saya membantu saya mencari tahu apa yang perlu saya simpan dari direktori rumah lama saya yang tidak ada di direktori rumah baru saya. 65 Gig ruang dihemat!

MrBungleBear
sumber