То же имя файла, разные INODES

Я не думаю, что у него есть ограничение по количеству строк.

До использования DNS (в 1985 году )именно этот файл служил единственным средством для поиска имен хостов, поэтому я предполагаю, что это означает, что файл должен иметь тысячи или, по крайней мере, сотни записей, чтобы иметь возможность поддерживать наиболее -подключенные интернет-узлы до -1985 года.

Вот пример из 1985 года (формат несколько изменился):http://jim.rees.org/apollo-archive/hosts.txtВ этом файле 1680 строк, из которых 1325 строк хоста. Остальные 355 строк пустые, комментарии, сети или шлюзы 1 .

Единственное реальное ограничение, которое я смог найти, заключалось в том, что в некоторых системах отдельные строки ограничены менее чем BUFSIZсимволами (1024 на моей машине с OpenBSD ).

Если у вас более пары записей в /etc/hosts, вам следует подумать о настройке локального сервера имен, но это мое личное мнение.


1Спасибо Джеффу Шаллеру за то, что раскопал это.

11
20.12.2019, 21:51
1 ответ

Мне удалось воспроизвести это поведение. См., например,:

ls -lib
268947 -rw-r--r-- 1 root root  8 Dez 20 12:32 app
268944 -rw-r--r-- 1 root root 24 Dez 20 12:33 aрр

Это в моей системе(Linux debian 4.9.0-7-amd64 #1 SMP Debian 4.9.110-3+deb9u2 (2018-08-13) x86_64 GNU/Linux).

У меня локаль UTF -8, и символ pв приведенном выше выводе отличается, но выглядит похоже. В первой строке это LATIN SMALL LETTER P, а во второй строкеCYRILLIC SMALL LETTER ER(см.https://unicode.org/cldr/utility/confusables.jsp?a=p&r=None). Это просто пример, это может быть любой символ в имени файла, даже точка.

Когда я использую локаль UTF -8, моя оболочка выдает приведенный выше вывод. Но если я использую локаль, в которой есть не все символы Юникода, например локаль по умолчанию c, то вывод выглядит следующим образом (вы можете изменить локаль, установивLC_ALL):

LC_ALL=c ls -lib
268947 -rw-r--r-- 1 root root  8 Dec 20 12:32 app
268944 -rw-r--r-- 1 root root 24 Dec 20 12:33 a\321\200\321\200

Это связано с тем, что CYRILLIC SMALL LETTER ERотсутствует в ASCII.

11
27.01.2020, 19:59

Теги

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