Quels caractères sont autorisés et lesquels doivent être échappés sur la ligne de commande sous différents systèmes d'exploitation?
linux
windows
command-line-interface
filesystems
java.is.for.desktop
la source
la source
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.
la source
Les seuls caractères non autorisés dans un nom de fichier dans * nix sont
NUL
et/
. Sous Windows, seulementNUL
,:
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.
la source
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
la source
\ / : * ? " < > |
tous les échapper et les créer avec mkdir sur mon système GNU / Linux. Vous pouvez également utilisermkdir '?'
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é.
la source