Parfois, il est pratique qu'un nom de dossier contienne un point (.). Par exemple, vous stockez des données pour une expérience effectuée à L = 0.5. Donc, le dossier peut ê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 partager ces répertoires avec un utilisateur Windows?
Merci!
Autant que je sache, le nommage de dossiers et de fichiers avec un ou plusieurs points ne pose aucun problème.
Ubuntu n'utilise généralement pas le point et trois caractères (tels que .txt) pour identifier le type de fichier. Cela n’a donc aucune signification particulière dans le contexte Ubuntu. Ceci est utile lors du partage de fichiers avec Windows. Ubuntu utilise des nombres magiques dans les premiers octets du fichier pour identifier le type de fichier. Cependant, Nautilus. ignore les nombres magiques si l'extension avec des points et trois caractères est disponible pour identifier le type de fichier. Ce paramètre peut être changé. Voir Force nautile à ignorer les extensions
Dans Ubuntu, le fait de commencer un fichier ou 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+H dans 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 pas de signification particulière placée à la fin. Cependant, sous Windows, un point sépare le nom du fichier et son extension, et un nom de fichier se terminant par un point, mais aucune extension n'est autorisée. Quand j'ai essayé de créer un tel fichier sous Windows, j'ai eu 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.
<>:"/\|?*
( source ).
( source ) grep
name__). Un point en tête rend un fichier caché par convention sous Linux. Sous Windows, les points sont utilisés dans l'extension de fichier, qui est utilisée pour la détection du type de fichier.CON
name__, PRN
name__, AUX
name__, CLOCK$
, NUL
COM1
, COM2
, COM3
, COM4
, COM5
, COM6
, COM7
, COM8
, COM9
LPT1
, LPT2
, LPT3
, LPT4
, LPT5
, LPT6
, LPT7
, LPT8
et LPT9
. ( source )/
et null (l'octet null, \0
).Ubuntu utilise le système de fichiers ext4
. 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 la forme propriétaire/groupe/autre peuvent lire/écrire/exécuter, horodatage, nom.
Le système de fichiers structure le stockage disponible. Le premier bloc s'appelle le "superbloc". Ce bloc est utilisé pour monter un système de fichiers. 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 (pouvant également être des inodes ou 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:
vim /home
Comme le répertoire ne contient pas le chemin d'accès complet, mais uniquement les noms du contenu, je ne vois pas pourquoi les fichiers ne pourraient pas contenir un /
. Je suppose que cela pourrait être la commodité. (Quelqu'un sait-il pourquoi /
n'est pas autorisé?)
Cependant, les choses sont différentes pour les autres systèmes de fichiers. Les systèmes FAT16 et FAT32 utilisaient une "table d'allocation de fichiers". Cela signifie qu'il existe une table contenant tous les fichiers stockés dans votre fichier, à quel "cluster" ils commencent et à quel cluster ils se terminent en tant que liste chaînée.
Ce que je voulais vous dire, c'est que les caractères non autorisés peuvent également dépendre du système de fichiers.
.txt
ou .html
(les deux sont des fichiers texte).Par souci d'exhaustivité, les noms composés uniquement d'un seul point .
ou de deux points ..
sont spéciaux:
.
fait référence au répertoire en cours..
fait référence au répertoire parentCes entrées sont ajoutées automatiquement et existent toujours, vous ne pouvez donc pas avoir un fichier nommé .
ou ..
.
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 éléments d'un programme (regardez dans le répertoire/etc)
La dénomination de fichier est très flexible dans les systèmes de fichiers Unix et Linux. Le seul nom de fichier que vous ne pouvez pas utiliser est un caractère null ou celui qui contient un /
dans son nom. Mais il 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é du nom; Par exemple, vous ne devriez utiliser aucun des " * : < > ? \ / |
(restreint par NTFS) dans votre nom de fichier si vous souhaitez accéder au fichier dans un système Windows.
Et sur l'utilisation d'un .
(point) dans le nom du fichier , je pense que cela devrait aller, car il ne semble pas que ce soit un "réservé" caractère dans n’importe quel système (sauf OpenVMS, MS-DOS et Windows où son utilisation dans le nom du fichier/répertoire est autorisée mais la dernière occurrence sera interprétée comme le séparateur d’extensions dans VMS, MS-DOS et Windows), comme indiqué dans le lien Wikipedia suivant:
Dans d'autres systèmes, généralement considérés comme faisant partie du nom de fichier, plusieurs périodes peuvent être autorisées. Sous Unix, une période de début signifie que le fichier ou le dossier est normalement masqué.