Intereting Posts
chmod: изменение разрешений в каталоге Работа запрещена Есть ли способ исключить вложенный подкаталог, указанный по пути к этому директору из рекурсивного поиска grep? Включить массивный одновременный SSH на один сервер Что делает firefox внутри контейнера запускает новое окно firefox снаружи на хосте с UID хост-пользователя? Разве это не странно для LXC? Автоматически получать UID и GID в команде firmware-iwlwifi не работает на ядре linux 4.6 – debian jessie Переадресация портов без задержки и с высокой частотой кадров в режиме реального времени с использованием socat arch linux странное сообщение после установки гостевых дополнений xorg и virtualbox сохранение номера строки при обработке текста внутри grep Замена нескольких пакетов Debian из скомпилированного источника Почему переменная PATH включает недопустимые пути каталога в Fedora 25? Объединить строки между ключевыми словами в однострочные значения, разделенные запятой Как стандартный ввод одной программы может передаваться как аргумент другому? Где установлен установочный префикс? Удаление теней из окон Metacity

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

Я хочу создать каталог с именем ниже

A3456/90876/IN AS%90876 JI KOL 

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

Источники:

Pathname

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

Заметка:

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

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

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

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

Например:

 mkdir A3456⁄90876⁄IN 

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

 mkdir -p A3456/90876/IN 

Вы не можете. Это явно запрещено в определении POSIX имени пути / файла :

3.170 Имя файла

Последовательность байтов, состоящая из 1 в {NAME_MAX} байтов, используемых для обозначения файла. Байты, составляющие имя, не должны содержать символы <NUL> или <slash> . В контексте имени пути каждое имя файла должно сопровождаться символом <slash> или <NUL> ; в другом месте имя файла, за которым следует <NUL> формирует строку (но не обязательно строку символов). Точки и точки имен файлов имеют особое значение. Имя файла иногда называют «компонентом пути». См. Также Pathname

Не только слэш не допускается в именах путей, но здравый смысл – это хорошо, потому что dirname (1) извлекает « / s» для поиска имен каталогов из путей к файлам, basename (1) удаляет компоненты каталога и суффикс суффикса, realpath (1) преобразует относительные в абсолютные пути, ища косые черты … Все эти программные средства полагаются на « / s», чтобы отделить то, что является каталогом от имени файла.

3.170 Имя файла

Последовательность байтов, состоящая из 1 в {NAME_MAX} байтов, используемых для обозначения файла. Байты, составляющие имя, не должны содержать символы или. В контексте имени пути каждое имя файла должно сопровождаться символом a или символом; в другом месте имя файла, за которым следует символ, формирует строку (но не обязательно строку символов). Точки и точки имен файлов имеют особое значение. Имя файла иногда называют «компонентом пути». См. Также «Путь».

И набор символов Portable Filename не рекомендует / не используется:

3.276. Набор символов портативного файла.

Набор символов, из которых создаются переносные имена файлов.

ABCDEFGHIJKLMNOPQRSTU VWXYZ abcdefghi jklmnopqrstuvwxyz 0 1 2 3 4 5 6 7 8 9. _ –

Документация о разрешении пути также даст вам немного света на ваш темный поиск странных имен файлов:

4.11 Разрешение имени пути

Разрешение имени пути выполняется для процесса для определения пути к определенному файлу в иерархии файлов. Могут быть несколько путей, которые разрешают один и тот же файл.

Каждое имя файла в имени пути находится в каталоге, указанном его предшественником ( например, в файле пути a / b, файл b находится в каталоге a ). Если это невозможно, разрешение имени пути не будет выполнено. Если путь начинается с косой черты, предшественник первого имени файла в имени пути должен быть корневым каталогом процесса (такие имена путей называются «абсолютными путями»). Если имя пути не начинается с косой черты, предшественником первого имени файла пути будет считаться текущий рабочий каталог процесса (такие имена путей называются «относительными именами путей»).

… (подавлено) … Прочитать исходную ссылку

Теперь у меня есть вопрос к вам . Почему вам нужны / на имена файлов? Или даже, хотите слэш на имена каталогов, если они уже используются в качестве разделителей / идентификаторов конца имени каталога?

При каждом манипулировании этими файлами вам придется иметь дело с обратными косыми чертами и другими escape-символами. Не круто…