该strings
命令的行为很奇怪,显然即使驱动器空间不足,它也不会停止写入文件。或者也许我错过了什么?
我运行以下命令:
# strings /dev/urandom > random.txt
这一直在运行,即使在填充磁盘(普通的 USB 闪存)后也没有停止。
然后为了更快,我创建了一个 ramdisk 并再次尝试了相同的命令。它也没有停止。
我知道这urandom
不是常规文件,并且strings
' 的输出也被重定向,但是在上述两种情况下,cat
当没有更多空间时,该命令都会报告错误。
# cat /dev/urandom > random.txt
cat: write error: No space left on device
- 这是字符串的正常行为吗?如果是这样,为什么?
- 没有更多空间后写入的数据在哪里?
如果 GNU
cat
不能写出它读取的内容,它将退出并出现错误:strings
另一方面,GNU并不关心它是否成功编写:所以所有这些写入都失败了,但会
strings
继续愉快地进行,直到它到达输入结束,这永远不会。