73 votes

Quels caractères devraient être restreints à partir d'un nom de fichier Unix?

Considérons un Enregistrer en tant Que boîte de dialogue avec une libre entrée de texte où l'utilisateur entre un nom de fichier sous forme de texte libre, puis clique sur Enregistrer bouton. Le logiciel valide le nom de fichier et enregistre le fichier si le nom est valide.

Sur un système de fichier Unix, quelles sont les règles qui doivent être appliquées dans la validation tels que:

  • Le nom ne sera pas difficile de les manipuler plus tard, en termes d'échapper les caractères spéciaux, etc.
  • Les règles ne sont pas si contraignantes que l'enregistrement d'un fichier devient non convivial.

Donc, fondamentalement, qu'est-ce que le minimum de l'ensemble des caractères qui doit être limité à partir d'un nom de fichier Unix?

62voto

mouviciel Points 36624

Les minimums sont slash ('/') et NULL ('\ 0')

42voto

Gavin Miller Points 21752

Tout d'abord, ce que vous décrivez est une liste noire. Votre meilleure option est de liste blanche de vos personnages, comme il est plus facile (à partir d'un point de vue utilisateur) d'avoir des personnages inséré, plutôt que de loin.

En termes de ce qui serait bon dans un environnement unix:

a-z A-Z 0-9 trait de soulignement (_) le tiret (-) période (.)

Devrait couvrir vos bases. Les espaces peuvent être d'accord, mais rendre les choses difficiles. Les utilisateurs de Windows de les aimer, unix/linux n'en ont pas. Donc, en fonction de votre public cible de choix en conséquence.

22voto

unwind Points 181987

Souvent oublié: les deux points (:) ne sont pas une bonne idée, car ils sont couramment utilisés dans des choses comme $ PATH, c’est-à-dire la liste des répertoires dans lesquels les exécutables sont trouvés "automatiquement". Cela peut entraîner une confusion avec les noms de répertoire DOS / Windows, où les deux points sont bien sûr utilisés dans les noms de lecteur.

11voto

Tobias Wärre Points 589

Ne pas oublier le point (.) de sorte que vous pouvez cacher les fichiers et les dossiers... Sinon, j'ai suivi un un*X nom de la convention (article de wikipédia):

La plupart des systèmes de fichiers UNIX

  • Traitement: la casse de cas-la préservation
  • Jeu de caractères autorisés: aucun
  • Les caractères réservés: / null
  • Longueur Max: 255
  • Notes: l'Un des principaux . indique que ls et les gestionnaires de fichiers ne sera pas par défaut afficher le fichier

Lien vers l'article de wikipedia sur les noms de fichier

3voto

Judge Maygarden Points 14964

S'il vous plaît, n'utilisez pas d'espaces! Ils fonctionnent, mais peuvent être très pénibles à travailler en ligne de commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X