Como criar um diretório com '/' no unix?

0

Eu quero criar um diretório com o nome abaixo

A3456/90876/IN AS%90876 JI KOL
    
por karthikeyan 08.12.2016 / 12:41

3 respostas

3

O caractere / não pode aparecer em nomes de arquivos, incluindo nomes de diretórios. É sempre interpretado como um separador entre os componentes do nome do caminho.

Fontes:

Pathname

A string that is used to identify a file. In the context of POSIX.1-2008, a pathname may be limited to {PATH_MAX} bytes, including the terminating null byte. It has optional beginning <slash> characters, followed by zero or more filenames separated by <slash> characters. A pathname can optionally contain one or more trailing <slash> characters. Multiple successive <slash> characters are considered to be the same as one <slash>, except for the case of exactly two leading <slash> characters.

Note:

If a pathname consists of only bytes corresponding to characters from the portable filename character set (see Portable Filename Character Set), <slash> characters, and a single terminating <NUL> character, the pathname will be usable as a character string in all supported locales; otherwise, the pathname might only be a string (rather than a character string). Additionally, since the single-byte encoding of the <slash> character is required to be the same across all locales and to not occur within a multi-byte character, references to a <slash> character within a pathname are well-defined even when the pathname is not a character string. However, this property does not necessarily hold for the remaining characters within the portable filename character set.

Pathname Resolution is defined in detail in Pathname Resolution.

(The Open Group Base Specifications Issue 7, volume Base Definitions, chapter 3 "Definitions", s.v. 3.271 Pathname)

    
por 08.12.2016 / 12:49
2

Embora / (U + 002F) seja o separador de componentes de caminho e não possa ser usado em nomes de arquivos, obviamente, há alguns ( , por exemplo, mesmo um combinando ( ̸ )) que pareça muito semelhante e que você poderia usar em vez disso se a intenção é confundir ou enganar as pessoas que usam o sistema.

Por exemplo:

mkdir A3456⁄90876⁄IN

Agora, se você quiser criar um diretório IN dentro de um diretório 90876 dentro de um diretório A3456 usando um único comando, é só:

mkdir -p A3456/90876/IN
    
por 08.12.2016 / 13:49
0

Você não pode. É explicitamente proibido por a definição POSIX de um caminho / nome de arquivo :

3.170 Filename

A sequence of bytes consisting of 1 to {NAME_MAX} bytes used to name a file. The bytes composing the name shall not contain the <NUL> or <slash> characters. In the context of a pathname, each filename shall be followed by a <slash> or a <NUL> character; elsewhere, a filename followed by a <NUL> character forms a string (but not necessarily a character string). The filenames dot and dot-dot have special meaning. A filename is sometimes referred to as a "pathname component". See also Pathname

    
por 08.12.2016 / 13:15