Re: Wie löscht /dev/null

2009-04-28 Diskussionsfäden Ignatios Souvatzis
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

2009-04-28 Diskussionsfäden Thomas Kaepernick
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

2009-04-28 Diskussionsfäden Jan-Hinrich Fessel


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

2009-04-27 Diskussionsfäden Martin Wittwer
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