Der strings
Befehl verhält sich merkwürdig, anscheinend hört er nicht auf, in eine Datei zu schreiben, selbst wenn auf dem Laufwerk nicht mehr genügend Speicherplatz vorhanden ist. Oder fehlt mir vielleicht etwas?
Ich führe Folgendes aus:
# strings /dev/urandom > random.txt
dies lief weiter und hörte auch nach dem füllen der festplatte nicht auf (ein normaler usb flash).
Um schneller zu sein, habe ich eine Ramdisk erstellt und den gleichen Befehl erneut versucht. es hörte auch nicht auf.
Ich verstehe, dass dies urandom
keine reguläre Datei ist und auch strings
die Ausgabe umgeleitet wird. In beiden oben genannten Fällen hat der cat
Befehl den Fehler gemeldet, als kein Speicherplatz mehr vorhanden war.
# cat /dev/urandom > random.txt
cat: write error: No space left on device
- Ist das normales Verhalten von Strings? Wenn ja warum?
- Wo werden die Daten geschrieben, nachdem kein Platz mehr vorhanden ist?
strace strings /dev/urandom > /dev/full
strings
Implementierung aus GNU-Binutils. Ich bezog mich auf denstrace
Befehl.Antworten:
Wenn GNU
cat
nicht ausschreiben kann, was es liest, wird es mit einem Fehler beendet :GNU
strings
hingegen ist es egal, ob es es geschafft hat, erfolgreich zu schreiben:Also scheitern all diese Schreibvorgänge, gehen aber
strings
fröhlich weiter, bis das Ende der Eingabe erreicht ist, was niemals der Fall sein wird.quelle
strings
.