Как может два файла в одной из моих папок иметь то же имя?

Bittorrent использует вычисление контрольной суммы и многочисленные связи. Это потребует вполне немного большего количества ЦП и вызовет намного больше диска, ищущего, чем FTP. Проверьте вывод top, iostat, vmstat, и т.д. для наблюдения, что является ограничивающим фактором.

11
16.08.2014, 21:58
1 ответ

Возможно, они только выглядят так, будто у них одно и то же имя.

Попробуйте:

$ 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 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>

, чтобы прояснить, что произошло.

См. Также этот другой ответ для получения дополнительной информации по этому вопросу.

38
27.01.2020, 19:56

Теги

Похожие вопросы