Может быть, они только выглядят так, как будто имеют одинаковое имя.
Пытаться:
$ touch Stéphane Stéphane Stéphane\ Stéphane
$ ls -1
Stéphane
Stéphane
Stéphane
Stéphane
Они выглядят примерно так же.
$ ls -1b
Stéphane
Stéphane
Stéphane
Stéphane\
Немного лучше. Символ пробела помечается как \
(хотя это ls
делают не все реализации).
$ LC_ALL=C ls -1b
Ste\314\201phane
St\303\251phane
St\303\251phane\
St\342\200\213\303\251phane
Теперь мы говорим (все не-ASCII символы отображаются как восьмеричное значение их байтовых составляющих)
Вы также можете сделать, и это работает для любого ввода:
$ ls | LC_ALL=C sed -n l
Ste\314\201phane$
St\303\251phane$
St\342\200\213\303\251phane$
St\303\251phane $
Здесь конец строк помечен, $
что облегчает определение конечного пробела. Тем не менее, это не поможет определить файл с именемStéphane<newline>Stéphane
$ ls | perl -Mopen=locale -MUnicode::UCD=charinfo -lpe '
s/[^\41-\177]/"<".charinfo(ord$&)->{name}.">"/ge'
Ste<COMBINING ACUTE ACCENT>phane
St<LATIN SMALL LETTER E WITH ACUTE>phane
St<ZERO WIDTH SPACE><LATIN SMALL LETTER E WITH ACUTE>phane
St<LATIN SMALL LETTER E WITH ACUTE>phane<SPACE>
Делает понятнее, что случилось.
Смотрите также этот другой ответ для получения дополнительной информации по этому вопросу.
ls -la
пожалуйста?