Re: Wie löscht /dev/null
Hallo allerseits, On Mon, Apr 27, 2009 at 12:21:45PM +0200, Thomas Kaepernick wrote: Am Montag, den 27.04.2009, 08:36 +0200 schrieb Ignatios Souvatzis: On Fri, Apr 24, 2009 at 05:10:31PM +0200, Martin Wittwer wrote: Was passiert denn genau, wenn ich eine Datei nach /dev/null verschiebe? Ist das das gleiche als wenn ich die Datei mit dem Befehl rm lösche? Nein. Das ist (fast) das gleiche, als wenn du /dev/null mit rm löschtst und die Datei /dev/null nennst. Sprich: du bekommst jede Menge Probleme, weil viele Anwendungen sich darauf verlassen, dass sie aus /dev/null nur die leere Datei lesen können und keinen Plattenplatz brauchen, wenn sie dahin schreiben. Das war aber nicht die Frage von Martin Witte. Er wollte nicht /dev/null löschen, sondern ihn interessiert der Unterschied zwischen dem Löschen einer beliebigen Datei mit rm oder durch verschieben nach /dev/null. Ja. Und ich habe erklärt, was verschieben (engl. to move, Unix-kommando mv, system call rename()) tut. Soweit ich weiß wird mit rm nur der inode-Eintrag gelöscht. Der Inhalt der Datei ist zunächst noch auf dem Speichermedium (z.B. Festplatte) und könnte daher wieder (mit entsprechenden Tools) hergestellt/ausgelesen werden werden. Richtig. Wenn die Datei mehrere (Hard-)Links besäße, könntest du sogar ohne Tricks über einen anderen auf diese Datei zugreifen. Wenn du etwas nach /dev/null schreiben läßt, -- was Martin Witte nicht schrieb; er schrieb die Datei nach /dev/null verschieben -- wird es - bildlich gesprochen - hinter dem Tellerrand im Nichts fallen gelassen. richtig. Es werden Daten, also Inhalte von Dateien dorthin geschrieben, der inode-Eintrag der Datei wird nicht angefaßt. Doch, die access-time... aber sonst hast du natürlich recht. Es ist andererseits möglich etwas Nichts über den Tellerrand in eine Datei zu ziehen. Diese wird dann mit Nullen gefüllt. Du meinst /dev/zero . /dev/null gibt dir nur eine Dateiendebedingung. Schreibend sind beide gleich. Aber das ist alles eine Beschreibung, was z.B. bei cat bzw. cp passiert. Verschieben (mv) hingegen macht (jedenfalls innerhalb eines Dateisystems) drei Dinge gleichzeitig: 1. alten Directory-Eintrag der Zieldatei loeschen 2. alten Directory-Eintrag der Quelldatei loeschen 3. neuen Directory-Eintrag fuer den Inode der Quelldatei mit dem Namen der Zieldatei erzeugen. So Martin mit verschieben etwas anderes gemeint hat als Verschieben, möge er es bitte schreiben, und sich die korrekte Nomenklatur angewöhnen. Tschoe -is
Re: Wie löscht /dev/null
Hallo, Am Dienstag, den 28.04.2009, 20:03 +0200 schrieb Ignatios Souvatzis: Hallo allerseits, On Mon, Apr 27, 2009 at 12:21:45PM +0200, Thomas Kaepernick wrote: ... Das ist (fast) das gleiche, als wenn du /dev/null mit rm löschtst und die Datei /dev/null nennst. Sprich: du bekommst jede Menge Probleme, weil viele Anwendungen sich darauf verlassen, dass sie aus /dev/null nur die leere Datei lesen können und keinen Plattenplatz brauchen, wenn sie dahin schreiben. Das war aber nicht die Frage von Martin Witte. Er wollte nicht /dev/null löschen, sondern ihn interessiert der Unterschied zwischen dem Löschen einer beliebigen Datei mit rm oder durch verschieben nach /dev/null. Ja. Und ich habe erklärt, was verschieben (engl. to move, Unix-kommando mv, system call rename()) tut. OK, deine Antwort an Martin hat meine Gedanken zunächst in die andere Richtung gelenkt. Aber sie stimmt. Deine ausführliche Beschreibung von mv unten macht das deutlich. ... Es ist andererseits möglich etwas Nichts über den Tellerrand in eine Datei zu ziehen. Diese wird dann mit Nullen gefüllt. Du meinst /dev/zero . /dev/null gibt dir nur eine Dateiendebedingung. Schreibend sind beide gleich. War mir nicht sicher, ob es bei NetBSD beide Gerätedateien gibt und sie genauso funktionieren. Aber das ist alles eine Beschreibung, was z.B. bei cat bzw. cp passiert. Verschieben (mv) hingegen macht (jedenfalls innerhalb eines Dateisystems) drei Dinge gleichzeitig: 1. alten Directory-Eintrag der Zieldatei loeschen 2. alten Directory-Eintrag der Quelldatei loeschen 3. neuen Directory-Eintrag fuer den Inode der Quelldatei mit dem Namen der Zieldatei erzeugen. So Martin mit verschieben etwas anderes gemeint hat als Verschieben, möge er es bitte schreiben, und sich die korrekte Nomenklatur angewöhnen. Tschoe -is Gruß Thomas
Re: Wie löscht /dev/null
Am 28.04.2009 um 20:03 schrieb Ignatios Souvatzis: Verschieben (mv) hingegen macht (jedenfalls innerhalb eines Dateisystems) drei Dinge gleichzeitig: 1. alten Directory-Eintrag der Zieldatei loeschen 2. alten Directory-Eintrag der Quelldatei loeschen 3. neuen Directory-Eintrag fuer den Inode der Quelldatei mit dem Namen der Zieldatei erzeugen. So Martin mit verschieben etwas anderes gemeint hat als Verschieben, möge er es bitte schreiben, und sich die korrekte Nomenklatur angewöhnen. Ganz großes Kino ;-) Grüße Oskar P.S.: Fahrst Du selber zum IPv6 Kongreß oder soll ich Dich aus Bonn am Vorabend mitnehmen? Zurück mußtest Du allerdings selber finden... PGP.sig Description: Signierter Teil der Nachricht
Wie löscht /dev/null
Hallo Leute, mein Freund und Arbeitskollege hat mir heute eine Frage gestellt, die ich ihm und mir leider nicht so einfach beantworten kann. Deshalb stelle ich sie mal hier in die Runde und hoffe das jemand die Antwort weiß. Was passiert denn genau, wenn ich eine Datei nach /dev/null verschiebe? Ist das das gleiche als wenn ich die Datei mit dem Befehl rm lösche? Viele Grüße Martin Wittwer