Question Confusion de Linux


Je suis confus avec le lien dur de Linux,

J'ai créé un lien dur avec cette commande sur ma machine Ubuntu,

ln f1 f2

Donc, f2 devrait être un lien physique de f1, mais pourquoi j'ai changé f2 avec emacs et enregistré f2, f1 n'a pas changé du tout. Ma compréhension est que f1 était supposé avoir tout changement que je faisais sur f2.


6
2018-06-18 05:45


origine


Pourquoi ne pas utiliser un lien symbolique à la place? - Wilshire


Réponses:


J'ai fait des tests et compris ce qui s'est passé. Tout d'abord, la commande ls -li vous indique le numéro d'inode dans la première colonne, deux liens physiques vers le même fichier auront le même numéro d'inode:

$ echo hi > f1
$ ln f1 f2
$ ls -li
total 8
1646595 -rw-r--r-- 2 randy randy 3 2011-06-18 06:50 f1
1646595 -rw-r--r-- 2 randy randy 3 2011-06-18 06:50 f2

Les fichiers f1 et f2 ont tous deux le numéro d’inode 1646595, ce sont des liens physiques vers les mêmes données. J'ai utilisé emacs pour éditer F1 et sauvegardé:

$ ls -li
total 12
1646597 -rw-r--r-- 1 randy randy 9 2011-06-18 06:51 f1
1646595 -rw-r--r-- 2 randy randy 3 2011-06-18 06:50 f1~
1646595 -rw-r--r-- 2 randy randy 3 2011-06-18 06:50 f2

Maintenant, f1 ~ et f2 ont le même numéro d'inode et f1 a un nouveau numéro d'inode.

Ce que emacs a fait lors de l’enregistrement est renommé f1 en f1 ~ et créé un nouveau fichier f1. f1 ~ est resté en liaison fixe avec f2, tandis que f1 étant un nouveau fichier, il n'est lié nulle part ailleurs.

Je ne sais pas s'il existe un paramètre dans emacs pour changer ce comportement.


8
2018-06-18 05:53



Il arrive souvent que l’application qui écrit un fichier existant n’y écrit pas directement, mais écrit dans un nouveau fichier et le renomme. En fait, cela est souvent souhaitable, car il est plus sûr: le fichier ne sera pas tronqué si quelque chose ne va pas (manque d’espace disque, coupure de courant, etc.). Un autre avantage de ce comportement réside dans le fait que des liens physiques peuvent être utilisés pour créer des doublons de fichiers ou des arborescences complètes de répertoires (copie sur écriture) (les répertoires ne sont pas liés, mais uniquement les fichiers qu'ils contiennent). - Jacek Konieczny