inode veranderd na opslaan bestand

Het is me opgevallen dat wanneer een bestand met bv TextEdit wordt gewijzigd en opgeslagen dat met [b]inode[/b] nummer van het bestand wijzigd wanneer ik een listing opvraag met het commando [code]ls -i[/code]Het open van dat bestand via de [b]hard link[/b] resulteerd in het oude bestand. Met andere woorden, het bestand is dus, na het opslaan van de wijziging, dubbel aanwezig op disk.

De functionaliteit van de hard link gaat hierdoor verloren. Het is niet altijd wenselijk om een soft link of een alias te gebruiken.

Wanneer een bestand wordt gewijzigd door bv het commando [code]datetime > file.txt[/code] dan blijft het inode nummer gelijk.

Ik werk met OS X 10.6.7

Kan iemand dit verklaren?

Groetjes,

Dennis

een inode bevat alleen de meta data van het bestand, het zal dus niet dubbel aanwezig zijn op de hard disk.
Het zou kunnen zijn dat je door het gebruik te maken van een hardlink een verwijzing\versie te pakken hebt van timemachine.

Een tijdje geleden wilde apple ook ZFS gebruiken voor dit soort grapjes, echter door patenten & licenties hebben ze dit toch niet gedaan en waarschijnlijk zelf wat zitten maken om dit toch mogelijk te maken.

ps: w00t mijn 1000e post

Zou dit kunnen liggen aan de manier waarop Cocoa-programma's bestanden bewaren? Die maken namelijk eerst een tijdelijk bestand — als ik het goed herinner ergens diep in /var/tmp/ — en lijken daarna het originele bestand door het tijdelijke te vervangen.

[quote=madcat url=http://www.onemorething.nl/community/topic/inode-veranderd-na-opslaan-bestand#post-2202927 time=1302675840]een inode bevat alleen de meta data van het bestand, het zal dus niet dubbel aanwezig zijn op de hard disk.[/quote]Na het opslaan van het bron bestand krijgt dit bestand een nieuw inode nummer. Het inode nummer van de hard link is gelijk gebleven. Van het bron bestand zijn dus nu twee versie op disk. Een gewijzigd en een ongewijzigd (de hard link).

[quote=madcat url=http://www.onemorething.nl/community/topic/inode-veranderd-na-opslaan-bestand#post-2202927 time=1302675840]Het zou kunnen zijn dat je door het gebruik te maken van een hardlink een verwijzing\\versie te pakken hebt van timemachine.[/quote]De folder waar dit in getest is is excluded van Time Machine.

[quote=madcat url=http://www.onemorething.nl/community/topic/inode-veranderd-na-opslaan-bestand#post-2202927 time=1302675840]ps: w00t mijn 1000e post[/quote]Gebak :-)

Je kunt met bestaande bestanden maar drie dingen doen: Dingen aan het einde toevoegen, dingen vanaf het einde verwijderen of bepaalde karakters overschrijven. Je kunt niet gewoon ergens in het midden een letter toevoegen, zoals dat bijvoorbeeld in TextEdit kan. Als je dat wilt doen zul je het hele bestand opnieuw moeten wegschrijven.

Als je een applicatie vraagt een bestand op te slaan, wordt over het algemeen eerst een heel nieuw bestand gemaakt met een tijdelijke naam. Als dat klaar is wordt het oude bestand in een keer vervangen door het nieuwe. Zo weet je toch zeker dat je, als het op de helft misgaat, altijd de hele oude, of de hele nieuwe versie overhoudt. Als de applicatie het originele bestand gaat herschrijven en het gaat op de helft mis, kan het zomaar zijn dat je alleen nog maar een half nieuw bestand hebt. Daarom kiezen de mensen die applicaties maken over het algemeen voor de eerste aanpak.

Het nieuwe bestand is dan echter wel een geheel nieuw bestand, en dus ook met een ander nummer.

Zo werken vrijwel alle unix applicaties; het is niet specifiek Apple die het zo gebouwd heeft.

Wat probeer je precies te bereiken met een hardlink?