2012-05-22 10 views
5

Wenn wir einen Befehl ausführen:Ausführung von 'mv A B': Wird der 'inode' geändert?

mv A B 

dann, was passieren wird, um die Felder in der Inode der Datei A? Wird es sich ändern?

Ich glaube nicht, dass es durch die Änderung des Namens der Datei nur ändern sollte, aber ich bin nicht sicher.

Antwort

8

Es hängt zumindest teilweise auf welcher A und B sind. Wenn Sie zwischen Dateisystemen wechseln, wird der Inode höchstwahrscheinlich anders aussehen.

einfach die Datei auf dem gleichen System Umbenennung ist eher das gleiche Inode einfach zu halten, weil die Inode auf die Daten, anstatt den Verzeichniseintrag und die Effizienz zu diesem Entwurf würde dazu führen, gehört. Es hängt jedoch vom Dateisystem ab und ist in keiner Weise durch Standards vorgeschrieben.

Zum Beispiel kann ein Versions-Dateisystem mit dem Inode-Konzept sein, das Ihnen einen neuen Inode gibt, weil es die Namensänderung verfolgen möchte.

+0

Wenn wir im selben Dateisystem sind, dann? – Luv

+1

@Luv - Ich finde die Erklärung auf [diese Seite] (http://teaching.idyllen.com/dat2330/04f/notes/links_and_inodes.html) ziemlich nützlich. Ein Verzeichnis ist einfach eine Zuordnung von 'Name' zu 'Inode'. Ein 'mv', der keine Daten physisch verschieben muss, ist also nur eine Änderung in einem Verzeichniseintrag. Keine Änderung in 'Inode'. – ArjunShankar

+1

@paxdiablo - Das ist eine gute Antwort. Ihr Punkt über die Versionsverwaltung von Dateisystemen ist interessant. Es wäre z. B. ziemlich teuer, vernünftiges Verhalten zu haben, wenn harte Links auf die Datei zeigen, die 'mv'ed war. – ArjunShankar

0

Es hängt davon ab.

Es gibt ein schönes Beispiel auf this site, die zeigt, dass die Inode gleich bleiben kann. Aber ich würde mich nicht auf dieses Verhalten verlassen, ich bezweifle, dass es in irgendeinem Standard spezifiziert ist.

Verwandte Themen