Quels caractères sont autorisés et lesquels doivent être échappés sur la ligne de commande sous différents systèmes d'exploitation?
Quels caractères sont autorisés et lesquels doivent être échappés sur la ligne de commande sous différents systèmes d'exploitation?
Réponses:
Il y a une discussion sur les caractères des noms de fichiers dans l'article de Wikipedia sur les noms de fichiers .
Vous pouvez trouver cet essai informatif: Correction des noms de fichiers Unix / Linux / POSIX .
Cet article compare OS X et Windows XP: X et XP: Caractères interdits dans les noms de fichiers (PDF, voir pages environ 64 à 66).
Choses qui ne devraient pas figurer dans les noms de fichiers pour 1 000 $ Alex
Je ne sais pas quels caractères doivent être non échappés, mais sous Linux, ce n'est probablement pas une bonne idée d'échapper aux caractères pouvant avoir une signification spéciale, tels que "n" (nouvelle ligne), "t" (tab) et autres, mais ce n'est généralement pas un problème dans les opérations de fichiers. Peut-être que vous voulez dire "échappé" plutôt que "non échappé". Les plus courants sont ceux que l'interpréteur interprétera, tels que espace, ">", "<", etc. Voir quelques articles liés pour une discussion de ceux-ci.
Les seuls caractères non autorisés dans un nom de fichier dans * nix sont NUL
et /
. Sous Windows, seulement NUL
, :
et \
sont vraiment pas autorisés, mais de nombreuses applications limitent que d' autres, ce qui empêche aussi ?
, *
, +
et %
.
À aucun moment, les caractères d'un nom de fichier ne doivent être échappés, à moins que cela ne soit nécessaire pour ne pas être interprété par le shell.
Si vous créez un fichier sous Windows avec l'Explorateur à l'aide de l'un des caractères suivants, les utilisateurs ne seront pas autorisés à se plaindre:
\ / : * ? " < > |
Une bonne référence est ici:
Attribution de noms aux fichiers, chemins d'accès et espaces de noms
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
Microsoft ajoute:
"... sur les plates-formes de bureau Windows, les chemins d'accès non valides peuvent inclure les caractères ASCII / Unicode de 1 à 31, ainsi que guillemet ("), inférieur à (<), supérieur à (>), pipe (|), retour arrière (\ b), null (\ 0) et tabulation (\ t). "
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
\ / : * ? " < > |
tous les échapper et les créer avec mkdir sur mon système GNU / Linux. Vous pouvez également utiliser mkdir '?'
pour créer le ?
répertoire. J'ai utilisé le système de fichiers ramdisk et XFS pour le tester.
Sur Linux et les autres systèmes compatibles POSIX, "/" est réservé car il s'agit du séparateur de répertoire et "\ 0" (le caractère NULL) désigne la fin de la chaîne. Tout le reste est autorisé.