Почему Linux может показывать имя файла, содержащее символ '/'?

32

Следующая картинка сделана в реальной среде Linux.

Вывод ls, показывающий символы, похожие на косую черту (/) в имени файла

Почему Linux может показывать имя файла, содержащее символ '/'?

xmllmx
источник
7
Так что это за персонаж? Пожалуйста, обновите ваш вопрос с hexdumpвыходом.
CJM
1
Даже если все API применяют ограничения на символы в имени файла при записи, можно (но громоздко) редактировать имя файла непосредственно в образе диска. (Я не знаю, проверяют ли сегодняшние обычные файловые системы имена файлов при чтении.)
Ульрих Шварц
@ cjm , Я вернул снимок виртуальной машины.
xmllmx
5
@xmllmx: Это одна из причин, по которой вместо (или в дополнение к) рисунка лучше всего скопировать и вставить вывод в виде текста.
TJ Crowder
2
Ext * запрещает только два символа из имен файлов: \0и /. Это ограничение на уровне ядра и FS; даже если вам удастся сделать это, самостоятельно осматривая записи каталога, я уверен, что Linux не сможет перейти к файлу, чтобы открыть его, на 82%.
cHao

Ответы:

53

Это не /персонаж ( U + 002F ); это какой-то персонаж Юникода, который просто выглядит похожим.

Пытаться

ls | hexdump -C

чтобы увидеть, что это такое.

Некоторые возможности ФРАКЦИИ SLASH (U + 2044) , DIVISION SLASH (U + 2215) , МАТЕМАТИЧЕСКОЕ RISING DIAGONAL (U + 27CB) , и несамостоятельные символы солидуса U + 0337 и U + 0338 , но нет никакого способа узнать , какой именно из ваш скриншот.

CJM
источник
2
круто ... спасибо, это ls | hexdump -Cкажется полезным в ряде случаев.
начинающий