Saya memiliki folder bernama img
, folder ini memiliki banyak tingkatan sub-folder, yang semuanya berisi gambar. Saya akan mengimpornya ke server gambar.
Biasanya gambar (atau file apa saja) dapat memiliki nama yang sama selama mereka berada di jalur direktori yang berbeda atau memiliki ekstensi yang berbeda. Namun, server gambar tempat saya mengimpornya memerlukan semua nama gambar untuk menjadi unik (bahkan jika ekstensi berbeda).
Misalnya gambar background.png
dan background.gif
tidak akan diizinkan karena meskipun mereka memiliki ekstensi yang berbeda mereka masih memiliki nama file yang sama. Bahkan jika mereka berada di sub-folder yang terpisah, mereka masih harus unik.
Jadi saya bertanya-tanya apakah saya dapat melakukan pencarian berulang di img
folder untuk menemukan daftar file yang memiliki nama yang sama (tidak termasuk ekstensi).
Apakah ada perintah yang bisa melakukan ini?
sumber
Jawaban:
FSlint adalah pengganda duplikat serbaguna yang mencakup fungsi untuk menemukan nama duplikat:
Paket FSlint untuk Ubuntu menekankan antarmuka grafis, tetapi seperti yang dijelaskan dalam FAQ FSlint, antarmuka baris perintah tersedia melalui program-program di
/usr/share/fslint/fslint/
. Gunakan--help
opsi untuk dokumentasi, misalnya:Contoh penggunaan:
sumber
ls -l
untuk memformat outputnya. Pertanyaan ini harus menjelaskan apa arti warna.Sebagai komentar menyatakan, ini akan menemukan folder juga. Ini adalah perintah untuk membatasi file:
sumber
uniq
tidak menyediakan fitur untuk memilih pembatas bidang yang berbeda.sed
usang? Batin? Yakin. Usang? Bukannya aku sadar. (Dan saya baru saja mencari untuk memeriksa.)Simpan ini ke file bernama
duplicates.py
Kemudian buat file tersebut dapat dieksekusi:
Jalankan di misalnya seperti ini:
Seharusnya output pasangan file yang memiliki nama sama (1). Ditulis dengan python, Anda harus dapat memodifikasinya.
sumber
P001.ORF
danP001 (1).ORF
sebagai duplikat dan juga sepertinya berpikir bahwa 60% dari file saya adalah duplikat yang salah saya cukup yakin.fslint
menemukan sejumlah nama file duplikat yang mendekati 3%.Saya berasumsi Anda hanya perlu melihat "duplikat" ini, lalu menanganinya secara manual. Jika demikian, kode bash4 ini harus melakukan apa yang Anda inginkan.
Lihat http://mywiki.wooledge.org/BashGuide/Arrays#Associative_Arrays dan / atau manual bash untuk bantuan tentang sintaks array asosiatif.
sumber
Ini adalah bname:
Jadikan itu dapat dieksekusi:
Tanyakan itu:
Pro:
Menipu:
sumber
Perbaikan skrip loevborg, untuk kebutuhan saya (termasuk keluaran yang dikelompokkan, daftar hitam, keluaran yang lebih bersih saat memindai). Saya memindai drive 10TB, jadi saya membutuhkan output yang sedikit lebih bersih.
Pemakaian:
python duplicates.py DIRNAME
duplicates.py
sumber