特定のディレクトリツリーで重複するファイル名をすべて見つける必要があります。ユーザーがスクリプトの引数としてどのディレクトリツリーを指定するかはわかりません。そのため、ディレクトリ階層がわかりません。私はこれを試しました:
#!/bin/sh
find -type f | while IFS= read vo
do
echo `basename "$vo"`
done
しかし、それは私が本当に欲しいものではありません。重複するファイル名がさらにある場合でも、重複を 1 つだけ見つけて終了します。パス全体 (ファイル名のみを出力) と重複カウントは出力しません。このコマンドに似た何かをしたかった:
find DIRNAME | tr '[A-Z]' '[a-z]' | sort | uniq -c | grep -v " 1 "
しかし、それは私にとってはうまくいきません。理由はわかりません。重複があっても何も印刷されません。Xubuntu 12.04 を使用しています。