Apakah ada cara untuk menemukan semua file dalam direktori dengan nama file duplikat, terlepas dari casingnya (huruf besar dan/atau huruf kecil)?
Jawaban yang Diterima:
Jika Anda memiliki utilitas GNU (atau setidaknya satu set yang dapat menangani saluran tanpa akhir) yang tersedia, jawaban lain memiliki metode yang bagus:
find . -maxdepth 1 -print0 | sort -z | uniq -diz
Catatan:output akan memiliki string yang diakhiri dengan nol; alat yang Anda gunakan untuk memproses lebih lanjut harus dapat menanganinya.
Dengan tidak adanya alat yang menangani garis yang diakhiri dengan nol, atau jika Anda ingin memastikan kode Anda berfungsi di lingkungan di mana alat tersebut tidak tersedia, Anda memerlukan skrip kecil:
#!/bin/sh
for f in *; do
find . -maxdepth 1 -iname ./"$f" -exec echo ; | wc -l | while read count; do
[ $count -gt 1 ] && echo $f
done
done
Apa kegilaan ini?
Lihat jawaban ini untuk penjelasan tentang teknik yang membuat ini aman untuk nama file gila.