これは私が問題を経験しているコマンドです
username@computer /current/working/directory
$ dd if="$filename" bs=1 seek=10 count=10 conv=notrunc status=progress^C
0+0 records in
0+0 records out
0 bytes copied, 1.70242 s, 0.0 kB/s
ファイルトライアルへのテスト出力(正気のため?)
username@computer /current/working/directory
$ dd if="$filename" bs=1 seek=10 count=10 conv=notrunc status=progress of=test
22+0 records in
22+0 records out
22 bytes copied, 0.0115305 s, 1.9 kB/s
環境
username@computer /current/working/directory
$ echo $filename
somefile.ext
username@computer /current/working/directory
$ dd --version
dd (coreutils) 8.26
Packaged by Cygwin (8.26-1)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Rubin, David MacKenzie, and Stuart Kemp.
username@computer /current/working/directory
$ echo $Shell
/bin/bash
username@computer /current/working/directory
$ bash --version
GNU bash, version 4.4.5(1)-release (x86_64-unknown-cygwin)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
username@computer /current/working/directory
$ stty
speed 38400 baud; line = 0;
start = <undef>; stop = <undef>; lnext = ^Q;
-imaxbel
-echoe -echok -echoctl -echoke
dd
のマニュアルページの関連セクションは、stdoutファイル記述子/ストリームへの出力を意味しているようですが、デフォルトの動作です。
of=FILE
write to FILE instead of stdout
このリンクなどで私が見つけた例は、次のことも意味します。 AskUbuntu-ddの進行状況をどのように監視しますか?
問題は、seek
にいくつかのブロックをスキップするように指示するdd
にある可能性があります出力の開始時stdout
でどのように機能すると思いますか?私のUbuntuでは、同様のdd
コマンドもヒットするまでハングします Ctrl+C。
解決策:seek=10
オプションを削除すると、機能するはずです。
注:入力をスキップするには、skip
を使用します。多分これはあなたが本当に欲しかったものです。
行の終わりに「of = test」という単語があり、ddに出力をファイル「test」に書き込むように指示しています。そのビットを削除すると、stdoutに書き込まれます。