В корневой файловой системе есть каталог boot
.
find [...] -maxdepth 2
Однако не должен отображать содержимое /boot
.
Причина такого поведения немного сложна...
Во-первых, современные оболочки включают проверку потенциально двоичных файлов (, содержащих нулевые байты ), но эта проверка проверяет только первую строку из файла. Вот почему «#» в первой строке меняет поведение. Историческая оболочка Bourne Shell не имеет этой двоичной проверки и даже не нуждается в «#», чтобы вести себя так, как вы упомянули.
Затем специальный метод, используемый оболочкой Bourne для поддержки многобайтовых символов через mbtowc()
, просто пропускает все нулевые байты, потому что mbtowc()
возвращает длину символа 0 для нулевого байта, и это заставляет цикл повторять попытку следующего символа.
Оболочка Bourne представила такой код примерно в 1988 году, и, возможно, другие оболочки скопировали его поведение.