Comment créer un directory avec '/' dans unix?

Je veux créer un directory avec le nom comme ci-dessous

A3456/90876/IN AS%90876 JI KOL 

Le caractère / n'est pas autorisé à apparaître dans les noms de files, y compris les noms de directorys. Il est toujours interprété comme un séparateur entre les composants pathname.

Sources:

Pathname

Une string qui est utilisée pour identifier un file. Dans le context de POSIX.1-2008, un nom de path peut être limité à {PATH_MAX} octets, y compris l'octet nul de terminaison. Il comporte des caractères de début <slash> facultatifs, suivis par zéro ou plusieurs noms de files séparés par des caractères <slash>. Un nom de path peut éventuellement contenir un ou plusieurs caractères <slash>. Plusieurs caractères <slash> successifs sont considérés comme étant identiques à un <slash>, à l'exception du cas de deux caractères <slash>.

Remarque:

Si un nom de path n'est composé que d'octets correspondant à des caractères du jeu de caractères de nom de file portable (voir le jeu de caractères de nom de file portable), de caractères <slash> et d'un seul caractère de terminaison <NUL>, le path sera utilisable comme string de caractères locales; Dans le cas contraire, le nom de path ne peut être qu'une string (plutôt qu'une string de caractères). En outre, étant donné que le encoding à un seul octet du caractère <slash> doit être identique pour toutes les locales et ne pas se produire dans un caractère multi-octets, les references à un caractère <slash> dans un path sont bien définies même lorsque le nom de path n'est pas une string de caractères. Cependant, cette propriété ne tient pas nécessairement pour les caractères restants dans le jeu de caractères de nom de file portable.

La résolution de path est définie en détail dans la résolution de path .

( Les spécifications de base du groupe ouvert Numéro 7 , définitions de base du volume, chapitre 3 "Définitions", sv 3.271 Chemin )

Alors que / (U + 002F) est le séparateur de composants de path et ne peut évidemment pas être utilisé dans les noms de files, il y en a quelques-uns ( par exemple, même un combinant ̸ ) que vous pourriez utiliser à la place si l'intention est de confondre ou de tromper les gens qui utilisent le système.

Par exemple:

 mkdir A3456⁄90876⁄IN 

Maintenant, si vous voulez juste créer un directory IN dans un directory 90876 intérieur d'un directory A3456 utilisant une seule command, c'est juste:

 mkdir -p A3456/90876/IN 

Tu ne peux pas. Il est explicitement interdit par la définition POSIX d'un path / nom de file :

3.170 Nom de file

Une séquence d'octets composée de 1 octets {NAME_MAX} utilisés pour nommer un file. Les octets composant le nom ne doivent pas contenir les <NUL> ou <slash> . Dans le context d'un nom de path, chaque nom de file doit être suivi d'un caractère <slash> ou d'un <NUL> ; ailleurs, un nom de file suivi d'un <NUL> forme une string (mais pas nécessairement une string de caractères). Les noms de file dot et dot-point ont une signification particulière. Un nom de file est parfois appelé "composant de nom de path". Voir aussi Pathname

(1) extrait " / s" pour find les noms des directorys à partir des paths de files, basename (1) supprime les composants du directory et le suffixe de fin, realpath (1) convertit le relatif en noms de paths absolus en recherchant des barres obliques … Tous ces logiciels s'appuient sur " / s" pour séparer ce qui est directory de ce qui est nom de file.

3.170 Nom de file

Une séquence d'octets composée de 1 octets {NAME_MAX} utilisés pour nommer un file. Les octets composant le nom ne doivent pas contenir le ou les caractères. Dans le context d'un nom de path, chaque nom de file doit être suivi d'un ou d'un caractère; ailleurs, un nom de file suivi d'un caractère forme une string (mais pas nécessairement une string de caractères). Les noms de file dot et dot-point ont une signification particulière. Un nom de file est parfois appelé "composant de nom de path". Voir aussi Pathname.

Et le jeu de caractères de nom de file portable ne recommand pas / à utiliser:

3.276 Jeu de caractères de nom de file portable

L'set des caractères à partir desquels les noms de files portables sont construits.

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

La documentation sur la résolution des paths vous donnera également un aperçu de votre sombre quête de noms de files bizarres:

4.11 Résolution du nom de path

La résolution du path d'access est exécutée pour un process de résolution d'un path d'access à un file particulier dans une hiérarchie de files. Plusieurs paths d'access peuvent être résolus par le même file.

Chaque nom de file dans le nom de path se trouve dans le directory spécifié par son prédécesseur ( par exemple, dans le fragment de path a / b, le file b se trouve dans le directory a ). La résolution du path doit échouer si cela ne peut pas être accompli. Si le nom de path commence par une barre oblique, le prédécesseur du premier nom de file dans le nom de path sera considéré comme le directory racine du process (ces noms de paths sont appelés "paths absolus"). Si le nom de path ne commence pas par une barre oblique, le prédécesseur du premier nom de file du path sera considéré comme le directory de travail courant du process (ces paths sont appelés paths relatifs).

… (supprimée) … Lire le lien original

Maintenant, j'ai une question pour vous . Pourquoi avez-vous / besoin de vos noms de files? Ou même, vouloir des barres obliques sur les noms de directory, s'ils sont déjà utilisés comme séparateurs / identificateurs de la fin du nom du directory?

Vous devrez gérer les barres obliques inversées et les autres caractères d'échappement à chaque fois que vous manipulez ces files. Pas cool…