Как создать каталог с '/' в unix?

В качестве альтернативы заданным ответам, если вы не знаете пароль root, позволяющий использовать su , вы можете загрузиться с однопользовательский режим.

В меню grub нажмите e , чтобы отредактировать командную строку загрузки. Ближе к концу начала строки linux добавьте слово single и продолжите загрузку. Вы будете помещены в приглашение root и сможете сбросить пароль root, чтобы вы могли использовать su при следующей нормальной загрузке.

1
09.12.2016, 01:39
3 ответа

Символ / не может появляться в именах файлов, включая имена каталогов. всегда интерпретируется как разделитель между компонентами имени пути.

Источники:

Путь

Строка, которая используется для идентификации файла. В контексте POSIX.1-2008 имя пути может быть ограничено байтами {PATH_MAX}, включая завершающий нулевой байт. Он имеет необязательные начальные символы , за которыми следует ноль или более имен файлов, разделенных символами . Имя пути может дополнительно содержать один или несколько завершающих символов .Несколько следующих друг за другом символов считаются такими же, как один , за исключением случая, когда в начале идёт ровно два символа .

Примечание:

Если имя пути состоит только из байтов, соответствующих символам из переносимого набора символов имени файла (см. Набор символов переносимого имени файла), символов <косая черта> и одного завершающего символа <ПУСТО (NUL>), имя пути будет можно использовать как строку символов во всех поддерживаемых регионах; в противном случае имя пути может быть только строкой (а не строкой символов). Кроме того, поскольку однобайтовая кодировка символа должна быть одинаковой для всех локалей и не встречаться в многобайтовом символе, ссылки на символ в имени пути четко определены, даже если имя пути не является символьной строкой. Однако это свойство не обязательно сохраняется для остальных символов в переносимом наборе символов имени файла.

Разрешение имени пути подробно описано в Разрешение имени пути .

( Базовые спецификации Open Group, выпуск 7 , том Базовые определения , глава 3 «Определения», sv 3.271 Путь )

4
27.01.2020, 23:13

Хотя / (U + 002F) является разделителем компонентов пути и, очевидно, не может использоваться в именах файлов, существует несколько ( например, даже один комбинированный ( ̸ )), которые выглядят очень похожими и что вы могли бы использовать вместо этого, если намерение состоит в том, чтобы сбить с толку или обмануть людей, использующих систему.

Например:

mkdir A3456⁄90876⁄IN

Теперь, если вы просто хотите создать каталог IN внутри каталога 90876 внутри каталога A3456 с помощью одной единственной команды , то это просто:

mkdir -p A3456/90876/IN
4
27.01.2020, 23:13

Нельзя. Это явно запрещено согласно POSIX определению пути/имени файла:

3.170 Filename

Последовательность байтов, состоящая из 1 - {NAME_MAX} байтов, используемая для наименования файла. Байты, составляющие имя, не должны содержать или characters. В контексте имени пути каждое имя файла должно сопровождаться символом <слэш> или ; в других местах за именем файла за которым следует символ , образует строку (но не обязательно строку символов). строку символов). Имена файлов dot и dot-dot имеют особое значение. Имя файла иногда называют "компонентом имени пути". См. also Pathname

1
27.01.2020, 23:13

Теги

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