Was passiert wenn man eine Datei nach /dev/null verschiebt?

4 Antworten

Von Experte julihan41 bestätigt

Wenn du "ein File nach /dev/null verschiebst", dann überschreibst du /dev/null und hast dann dort ein reguläres File :)

Woher ich das weiß:Berufserfahrung – Privat und beruflich damit zu tun
BeamerBen  15.02.2022, 17:48

PS: mit mknod kann man sich wieder ein /dev/null erstellen welches ein spezielles file ist

Normalerweise ist dev null ein file in welches man schreiben kann und der input schlicht verworfen wird. Aber es ist ein file, und wenn man das file *ersetzt* statt in das file zu schreiben, wichtiger unterschied, dann wirst du es eben einfach ersetzten.

Überschreiben wäre so was wie mv myfile /dev/null In das File schreiben wäre so was wie echo test > /dev/null

Ein anderer semihäufiger Fehler ist /dev/null und /dev/zero zu verwechseln. /dev/zero gibt einen stream mit nullen aus, während dev null keinen content zurück gibt.

1
guenterhalt  17.02.2022, 17:10
@BeamerBen
mit mknod kann man sich wieder ein /dev/null erstellen welches ein spezielles file ist

oder aber ein Reboot ausführen, denn alles was in /dev/ steht wird neu erzeugt.

0
BeamerBen  17.02.2022, 17:43
@guenterhalt

Hallo, tatsächlich gibt es Maschinen die man nicht einfach rebooten kann. Weil sie wichtig sind.

Das mag vielleicht für den Hobby Bereich gut funktionieren, aber wenn man tatsächlich auch für produktive Server zuständig ist, ist mknod die deutlich bessere Wahl. Und geht auch deutlich schneller bei so manchen Servern - die können schon mal ne Weile brauchen für einen Reboot bis alles wieder läuft.

0
guenterhalt  17.02.2022, 19:35
@BeamerBen
aber wenn man tatsächlich auch für produktive Server zuständig ist,

dann sollte man den entlassen, der als root solche Befehle startet, denn der ist dann bestimmt auch unfähig mknod zu benutzen.
Selbst die man-pages werden wohl nicht helfen, denn woher bekommt er Major- und Minor-Nummer?

0
guenterhalt  17.02.2022, 17:26
Wenn du "ein File nach /dev/null verschiebst", dann überschreibst du /dev/null und hast dann dort ein reguläres File :)

eigentlich nicht. "du" bist ein einfacher User und nicht der Superuser.
mv <file> /dev/null

endet mit einer Fehlermeldung, nicht mehr.

cp <file> /dev/null

schickt die Datei ins Nichts.

0
BeamerBen  17.02.2022, 17:42
@guenterhalt

Ich muss sagen ich bin schon sehr verwirrt wie man so eine "Korrektur" posten kann. Ich glaube ich weiß schon ganz gut wo ich superuser bin, und wo nicht.

Die Frage war was passiert wenn man eine Datei >>verschiebt<<. Mit cp verschiebt man keine Dateien. Auf die Frage was passiert wenn man eine Datei verschiebt das man die Datei nicht verschieben kann - was du ja überhaupt nicht weißt ist so absurd. Ich frage mich ernsthaft wie man darauf kommt. Aber egal.

Jedenfalls öffnet cp tatsächlich die Zieldatei. Den Unterschied zwischen überschreiben und in ein File schreiben habe ich bereits erläutert, ich kann versuchen dir das noch mal einfacher zu erklären. Jedenfalls kann cp das File auch ersetzen, dafür braucht man ein flag wenn man das denn möchte. Dann ersetzt cp sehr wohl auch /dev/null/ mit einem regulären file.

0
guenterhalt  17.02.2022, 19:53
@BeamerBen
Ich glaube ich weiß schon ganz gut wo ich superuser bin, und wo nicht.

das ist schon denkbar. Hier ging es aber um den Fragesteller und der hat nichts von einem Superuser erwähnt.

Glaubst du wirklich mir die Option  --remove-destination bei cp erklären zu müssen?

was du ja überhaupt nicht weißt ist so absurd.

Dein Ton ist übrigens recht arrogant, was ich dir aber verzeihe, denn so viele Nutzer, die schon 118 Jahre alt sind, gibt es hier wohl doch nicht.

0
BeamerBen  17.02.2022, 20:38
@guenterhalt

Oh das ist mir gar nicht aufgefallen, eigentlich passe ich meinem Ton stets dem Inhalt an, heißt auf sinnvolle Kommentare - die deine sicher ja waren - reagiere ich meist freundlich.

Arrogant antworte ich eigentlich nur wenn mir Leute versuchen meine eigenen Antworten zu erklären oder Leute meinen mir irgendwelche Basics wie Dateiberechtigungen und den root user erklären zu müssen.

Sorgen um den Fragesteller mache ich mir nicht, immerhin hat die DummeStundentin die Antwort als hilfreich markiert. Vielleicht kennt die DummeStudentin ja den Root user selber auch. Gar nicht mal so dumm.

0
guenterhalt  17.02.2022, 21:15
@BeamerBen
Arrogant antworte ich eigentlich nur wenn mir Leute versuchen meine eigenen Antworten zu erklären

erklärt habe ich dir deine Antwort nicht, sicher aber ergänzt.
Bei solchen Fragen wie von @DummeStudentin sollte man wohl doch etwas mehr schreiben, denn da liegt der Verdacht nahe, das viel Grundlagenwissen fehlt.

Ein Blick ins Profil des Users sagt da viel.

Ich hab's getan und mir Sorgen gemacht, denn eine Datei nach /dev/null verschieben, kann doch nur zu einer Prüfungsaufgabe gehören.

1

Viel Spaß beim zurück kopieren. Musst aufpassen, dass /dev/null auch groß genug dimensioniert ist.

BeamerBen hat natürlich recht, die inode der Datei wird eben nach /dev verschoben und mit null benannt.

Metaphorisch ist damit gemeint sie ins Nirvana zu schicken, denn wenn ich die Gerätedatei öffne und hineinschreibe, dann werden die Daten schlichtweg weggeworfen aber das Schreiben normal bestätigt.

Unter DOS war die Datei dann weg :-))