Qu'est-ce que la version de file signifie: lsattr -v

lsattr -v me donne le "numéro de version" de file (s) donné (s).

Qu'est-ce que ça veut dire?

Sur Redhat 7.3, je pourrais avoir juré que tous les numéros de version étaient 1 sauf ceux que j'ai changés avec chattr -v .

Sur Fedora 11, ils semblaient être des nombres randoms .

Définir des numéros de version ou même avoir plusieurs versions d'un file pourrait être très utile, alors je veux comprendre comment "versionnement" fonctionne dans ext3.

lsattr -v appelle le EXT2_IOC_GETVERSION ioctl EXT2_IOC_GETVERSION pour le file. Ceci, à son tour, récupère le champ i_generation l'inode. C'est une fonctionnalité principalement destinée à être utilisée avec NFS: chaque fois qu'un inode est alloué, il faut s'assurer qu'il obtient une nouvelle génération. Sinon, les clients NFS avec des descripteurs de files périmés peuvent accéder aux données qui ne leur sont pas destinées. ext2 / ext3 / ext4 alloue le numéro de génération à partir d'un countur volume-global s_next_generation , qui est incrémenté sur chaque allocation.

Ce n'est pas vraiment une réponse, mais juste une trouvaille intéressante.

J'ai joué avec lsattr -v et il semble que chaque nouveau file que vous créez reçoive un numéro unique. Je ne suis pas sûr que ce soit correct, mon expulsion est documentée ci-dessous.

 $ mkdir temp # make a new folder $ cd temp $ touch abcdefg # create a lot files in that folder. $ lsattr -v * # checkout those files using lsattr -v 1386486996 -------------e- a 1386486997 -------------e- b 1386486998 -------------e- c 1386486999 -------------e- d 1386487000 -------------e- e 1386487001 -------------e- f 1386487002 -------------e- g 

Ce comportement peut être limité à la dissortingbution ou au format de disque.