Scenario for file's Inode update
while reading Maurice Bach's "The Design Of The Unix Operating System", i came across inode.
As file gets updated inode also changes but are there any scenarios like, - file is same and new inode is assigned - file is changed and previous(old) inode is still there Are these situations may happen? if yes how? and why? |
Quote:
A file can be read and rewritten in place (opened for reading and writing) and would keep the same inode. Note that most editors will, for safety, save the new version under a temporary name and then, once the new version has been written successfully, rename it over the old. The file would thus have a different inode. Cases where this can't be done, and the file is thus rewritten in-place, include (a) a directory that is not writable and thus no file creation or renaming can be done there, and (b) files with multiple hard links, since the new file would not share the hard links. |
Yes, i got the concept of how the new inode is assigned to same file.
But i am still not clear about 2nd scenario that, file is changed and old inode remains same. is this case possible? |
Sure. Changing a file directly, the file keeps its inode number.
Code:
touch some_file Code:
# touch some_file |
OK, it remains same. But as i read in the book, it says, as the file gets updated the inode also get changed. do they mean the content of the inode changes like access/modify time?
|
I see. Ok, this is the thing.
An "Inode" is an object with a numeric key. The term "Inode" is sometimes simplified and meant as the "inode number" when it really should refer to the record as a whole. For example, an Inode Record contains these fields:
Notice that the "Inode Record" contains a field called "Inode Number"? That is the source of your confusion. The "Inode Number" does not change with every operation. But other fields in the record itself may. |
All times are GMT -5. The time now is 08:22 PM. |