Sous Ubuntu, contrairement à Windows, je peux renommer un fichier en cours d’écriture sur le disque dur (par exemple, parce qu’il s’agit de la sortie d’un programme ou de la copie d’un autre fichier), mais aussi de renommer un répertoire contenant des fichiers en cours de copie. écrit: le système n'envoie pas de message du type "Le fichier est en cours d'utilisation, opération non autorisée". Cette opération de changement de nom est-elle sûre à 100% ou risque-t-il de créer des fichiers corrompus? Et, dans le premier cas, quelle est la raison technique qui le rend possible, différemment des autres systèmes d'exploitation? (Peut-être que quelque chose est lié à la structure du système de fichiers Linux et à l'utilisation d'inodes, je pense ...?)
Merci beaucoup.
Linux fonctionne sur les descripteurs de fichiers. Renommer ou déplacer un fichier sous Linux ne modifie pas le descripteur de fichier. Même la suppression d'un fichier ne posera pas de problème: le processus propriétaire du descripteur de fichier peut toujours lire et écrire.
Le page Wikipedia sur les inodes sera la meilleure lecture à ce sujet.
En informatique, un inode (noeud d'index) est une structure de données présente dans de nombreux systèmes de fichiers Unix. Chaque inode stocke toutes les informations relatives à un objet de système de fichiers (fichier, nœud de périphérique, socket, canal, etc.). Il ne stocke pas le contenu des données et le nom du fichier sauf dans certains cas dans les systèmes de fichiers modernes.
Implications
Le numéro d'inode d'un fichier reste identique lorsqu'il est déplacé vers un autre répertoire du même périphérique ou lorsque le disque est défragmenté, ce qui peut modifier son emplacement physique. Cela implique également qu'il est impossible d'implémenter un comportement inode totalement conforme avec de nombreux systèmes de fichiers non Unix, tels que FAT et ses descendants, qui ne disposent d'aucun moyen de stocker cette invariance lorsque l'entrée de répertoire d'un fichier et ses données sont déplacées. .
Donc oui.