Existuje způsob, jak najít všechny soubory v adresáři s duplicitními názvy souborů, bez ohledu na velká a malá písmena (velká a/nebo malá)?
Přijatá odpověď:
Pokud máte k dispozici nástroje GNU (nebo alespoň sadu, která si poradí s řádky ukončenými nulou), další odpověď má skvělou metodu:
find . -maxdepth 1 -print0 | sort -z | uniq -diz
Poznámka:výstup bude mít řetězce zakončené nulou; nástroj, který používáte k dalšímu zpracování, by to měl zvládnout.
Pokud chybí nástroje, které se zabývají řádky ukončenými nulou, nebo pokud se chcete ujistit, že váš kód funguje v prostředích, kde takové nástroje nejsou dostupné, potřebujete malý skript:
#!/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
Co je to za šílenství?
V této odpovědi najdete vysvětlení technik, díky kterým je to bezpečné pro bláznivé názvy souborů.