Parfois, il est pratique qu'un nom de dossier contienne un point (.). Par exemple, vous stockez des données pour une expérience menée à L = 0,5. Le dossier pourrait donc être nommé:
experiment_L0.5
Un problème similaire peut survenir pour les noms de fichiers. Par exemple:
file_L0.5.txt
Travailler sous Ubuntu, est-ce une mauvaise pratique? Et si vous partagiez ces répertoires avec un utilisateur Windows?
Merci!
Réponses:
Pour autant que je sache, il n'y a aucun problème avec le nommage des dossiers et des fichiers avec un ou plusieurs points.
Ubuntu n'utilise généralement pas le point et les trois caractères (tels que .txt) pour identifier le type de fichier. Donc, cela n'a pas de signification particulière dans le contexte Ubuntu. Ceci est utile lors du partage de fichiers avec Windows. Ubuntu utilise des numéros magiques dans les premiers octets du fichier pour identifier le type de fichier. Cependant, Nautilus. ignore les nombres magiques si l'extension point et trois caractères est disponible pour identifier le type de fichier. Ce paramètre peut être modifié. Voir Force nautilus à ignorer les extensions
Dans Ubuntu, le démarrage d'un fichier ou d'un dossier avec un point, tel que
.experiment_L0.5
, rend le fichier ou le dossier masqué. Vous pouvez basculer l'affichage des fichiers cachés en appuyant sur Ctrl+ Hdans Nautilus. Sous Windows, un nom de fichier commençant par a. n'est pas caché. Donc, si vous transférez un fichier caché nommé.experiment_L0.5
dans un système Windows, il sera clairement visible.Dans Ubuntu, un nom de fichier peut se terminer par un point car il n'a aucune signification particulière placée à la fin. Cependant, sous Windows, un point sépare le nom et l'extension du fichier, et un nom de fichier se terminant par un point mais aucune extension n'est autorisée. Lorsque j'ai essayé de créer un tel fichier sous Windows, j'ai obtenu un fichier avec juste le nom, pas de point, pas d'extension.
Référence: Wiki sur les noms de fichiers
J'espère que cela t'aides.
la source
:
, illégal dans les noms de fichiers Windows, ce qui créera des problèmes ( et c'est le cas ). Voir aussi ici .fname.
) n'est pas autorisé dans Windows non plus.test.
dans Windows. Je mettrai à jour ma réponse.La réponse courte
<>:"/\|?*
( source )et le point
.
( source )grep
). Un premier point fait un fichier caché par convention sous Linux. Sous Windows, des points sont utilisés dans l'extension de fichier, qui est utilisée pour la détection du type de fichier.CON
,PRN
,AUX
,CLOCK$
,NUL
COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
LPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
etLPT9
. ( source )/
et null (l'octet nul,\0
).La réponse longue
Contexte technique: système de fichiers
Ubuntu utilise le
ext4
système de fichiers. Un système de fichiers suit où les fichiers sont stockés sur le stockage sous-jacent (disque ou SSD ou autre), les autorisations sous forme de propriétaire / groupe / autre peuvent lire / écrire / exécuter, horodatages, nom.Le système de fichiers structure le stockage disponible. Le premier bloc est appelé le "superbloc". Ce bloc est utilisé pour monter un système de fichiers. Pour autant que je sache, chaque système de fichiers moderne divise son espace en blocs. Je pense (et je n'en suis pas trop sûr) que la plupart des systèmes de fichiers ont également une taille de bloc fixe, bien que la taille de bloc puisse être configurée lors de la création du système de fichiers. ext4 (et aussi ext2 et ext3) utilisent ce qu'on appelle des "inodes" pour les fichiers et les répertoires. Ces inodes contiennent des pointeurs vers d'autres blocs (qui peuvent également être des inodes ou être des "blocs de données"). Et le "premier" inode d'un fichier contient toutes les informations que j'ai mentionnées ci-dessus.
Une autre information est le "type" du fichier. "Type" peut être:
En fait, vous pouvez également ouvrir des répertoires avec un éditeur:
Comme le répertoire ne contient pas le chemin complet, mais seulement les noms du contenu, je ne vois pas pourquoi les fichiers ne peuvent pas contenir de
/
. Je suppose que cela pourrait être pratique. (Est-ce que quelqu'un sait pourquoi/
n'est pas autorisé?)Cependant, les choses sont différentes pour les autres systèmes de fichiers. Les FAT16 et FAT32 utilisaient une soi-disant "table d'allocation de fichiers". Cela signifie qu'il existe une table qui contient tous les fichiers qui sont stockés dans votre fichier, à quel "cluster" ils commencent et à quel cluster ils se terminent en tant que liste liée individuellement.
La chose importante que je voulais vous dire est que les caractères non autorisés peuvent également dépendre du système de fichiers.
Contexte technique: types de fichiers
.txt
ou.html
(les deux sont des fichiers texte).en relation
la source
.txt
et les.html
fichiers ont en effet différentes "valeurs magiques" - essayez de renommer un fichier htmltest.txt
et de l'exécuterfile test.txt
. Cela n'a pas beaucoup de pertinence avec la question d'origine, mais quand même :)file
:file
n'utilise pas seulement des valeurs magiques pour déterminer le type d'un fichier. Chaque fichier HTML valide est un fichier texte (dans le sens où il contient des caractères lisibles), mais tous les fichiers texte valides ne sont pas un fichier HTML valide (dans le sens où il valide par rapport aux validateurs W3C). Donc, beaucoup de types de fichiers (html, xml, csv, js, php, c, h, cpp, ...) sont en fait des fichiers texte. Seuls les fichiers binaires ont des octets magiques qui se trouvent sur des positions bien définies. Tous les fichiers que j'ai nommés ci-dessus peuvent avoir des espaces arbitraires avant le contenu.Par souci d'exhaustivité, les noms qui ne sont constitués que d'un seul point
.
ou de deux points..
sont spéciaux:.
fait référence au répertoire courant..
fait référence au répertoire parentCes entrées sont ajoutées automatiquement et existent toujours, vous ne pouvez donc pas avoir de fichier nommé
.
ou..
.la source
Cela n'a pas d'importance, ni sous Linux ni dans Windows.
C'est une pratique courante d'avoir un dossier nommé "program.d" - pour enregistrer la configuration et les trucs pour un programme (regardez dans le répertoire / etc)
la source
La dénomination des fichiers est très flexible dans les systèmes de fichiers Unix, Linux. Le seul nom de fichier que vous ne pouvez pas avoir est un caractère nul ou celui contenant un
/
dans son nom. Mais ce serait sûrement une bonne pratique d'éviter d'utiliser les caractères interdits / réservés dans d'autres systèmes du point de vue de la portabilité des noms; comme vous ne devriez pas utiliser de" * : < > ? \ / |
caractères (restreint par NTFS) dans votre nom de fichier si vous souhaitez accéder au fichier dans un système Windows.Et à propos de l'utilisation d'un
.
(point) dans le nom de fichier , je pense que cela devrait être bien car il ne semble pas être un caractère "réservé" dans aucun des systèmes (sauf pour OpenVMS, MS-DOS et Windows où son utilisation dans le nom de fichier / répertoire est autorisé mais la dernière occurrence sera interprétée comme le séparateur d'extension dans VMS, MS-DOS et Windows) comme mentionné dans le lien Wikipedia qui suit:Dans d'autres systèmes, généralement considérés comme faisant partie du nom de fichier, et plusieurs périodes peuvent être autorisées. Sous Unix, une première période signifie que le fichier ou le dossier est normalement masqué.
la source