USBデバイスの完全なバイナリコンテンツが純粋なゼロであることを確認する方法を探しています。
このコマンドを試しています。
sudo xxd /dev/sdb | uniq
しかし、出力はなく、永遠に実行されます。
Sortコマンドを検討しましたが、標準の端末出力だけでなくファイルも読み取る必要があることを理解しました。
更新:確認できることに気づきましたsudo xxd -a /dev/sdb
が、まだ質問が残っています。まず、ファイルに保存せずに端末の出力を一意にソートする方法はありますか?
答え1
単にod
or を使用すると、これらのプログラムが重複ライン出力を防止するため(または上記のように使用)、hexdump
大丈夫です。xxd -a
たとえば、
$ truncate -s 1M test
$ hexdump test
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0100000
$ od test
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
4000000
ドライブがゼロに設定されている場合、出力はこれと大きく変わらず、最終アドレスがはるかに大きくなります。他のデータが表示されたらCrtl- をクリックしますC。
ゼロ以外のデータを探して端末を入力した後に続行したくない場合は、次のようにします(からbash
)。
count=0
stdbuf -oL od /dev/sdb |
while read line; do
echo "$line"
(( ++count > 3 )) && break
done
これにより、ドライブが0に設定されているかどうかを知ることができる最大4行の出力が印刷されます。
Topはこれをきちんと処理し、あなたも同じことができますsudo xxd /dev/sdb | sort -u
。ソートオプションを追加する-u
ことは、を実行するのと同じですsort | uniq
。
答え2
xxd
私はこれがこのネジに適したハンマーであるとは思わない。 null バイトの削除を実行しtr
、残りがあるかどうかを確認できます。
[ -n "$(</dev/sdb tr -dc '\0' | head -c 1)" ]
od
空の行を縮小することもできます。
[ "$(od -tx1 -An -w1 | head -n 2 | tr -d ' \n')" = "00*" ]
答え3
このコマンドは問題を解決できると思います。
xxd /dev/sdb | grep -v '0000 0000 0000 0000 0000 0000 0000 0000'
ドライブが0に設定されている場合、このコマンドは出力を返しません。バイトが残っている場合、コマンドは画面にそのバイトを求めるメッセージを表示します。
ありがとう
答え4
cat -b /dev/disk2
ディスクから空でない行を印刷するには、このcat
コマンドとそのオプションを試してください。-b
ディスクが正しくゼロになると、行は印刷されません。