警告:我在一个没有任何内容的驱动器上使用了这些命令(
/dev/sdb
)。不要在带有任何重要内容的驱动器上尝试此操作。
我正在尝试一些,我发现以下工作:
$ printf 'hi\n' | sudo tee /dev/sdb
hi
$ sudo head -n 1 /dev/sdb
hi
$
整洁的。这就是我感到困惑的地方。我再次尝试了cat
(第一个命令是相同的,我用 . 替换了第二个命令sudo cat /dev/sdb
。它打印hi
了 ,后跟一个换行符,然后挂起。做Ctrl+C并不能阻止它。真糟糕。
我推断也许最后cat
需要一个 null ( \0
) 字符。所以我再次尝试(printf 'hi\n\0' | sudo tee /dev/sdb
),并head
像以前一样工作,但cat
仍然挂起。cat
直接写入 USB 驱动器时如何才能不挂起?我不是在问这是否是个好主意(不是)。我很清楚我可以格式化驱动器并使用文本文件,但我很好奇为什么这没有按预期工作。
我正在使用带有 2 GB 闪存驱动器 ( /dev/sdb
) 的 Debian 11。
将标准输入(从管道)复制到标准输出并复制到
/dev/sdb
复制
/dev/sdb
到标准输出。管道的输出不被读取cat
。所以
cat
不会挂起,它将磁盘的全部内容复制到终端,这需要一段时间。管道不会改变 cat 的任何内容,因为第一个参数告诉它/dev/sdb
是输入。