The strings
berperilaku perintah ganjil, tampaknya itu tidak berhenti menulis ke file bahkan jika drive kehabisan ruang. Atau mungkin saya melewatkan sesuatu?
Saya menjalankan yang berikut ini:
# strings /dev/urandom > random.txt
ini terus berjalan dan tidak berhenti bahkan setelah mengisi disk (usb flash biasa).
kemudian agar lebih cepat saya membuat ramdisk dan mencoba lagi perintah yang sama. itu juga tidak berhenti.
Saya mengerti bahwa urandom
ini bukan file biasa dan juga strings
output diarahkan, namun dalam kedua kasus di atas, cat
perintah melaporkan kesalahan ketika tidak ada lagi ruang.
# cat /dev/urandom > random.txt
cat: write error: No space left on device
- Apakah ini perilaku normal? Jika demikian, mengapa?
- Di mana data ditulis setelah tidak ada lagi ruang yang tersisa?
strace strings /dev/urandom > /dev/full
strings
implementasi yang sama dari binutils GNU. Saya mengacu padastrace
perintah.Jawaban:
Jika GNU
cat
tidak dapat menulis apa yang dibaca, GNU akan keluar dengan kesalahan :GNU
strings
, di sisi lain, tidak peduli apakah itu berhasil menulis berhasil:Jadi semua penulisan itu gagal, tetapi
strings
terus berlanjut dengan riang, hingga mencapai akhir input, yang tidak akan pernah ada.sumber
strings
.