GNUWinでddコマンド


アニメ『ハイスクールD×D HERO』

ずっと食わず嫌いしてたのですが、1期から見始めて結構面白く見れてます。ずっと見てなかったのはバトルものだって知らなかっただけなのですが。
主人公の能力が倍倍になってく能力欲しいです。

DxDということで、WindowsにいれたGNUWinのddコマンドを使います。

manがないのでhelpを見ましょう。

C:\Users\takk\Desktop\tmp> dd --help
Usage: dd [OPERAND]...
  or:  dd OPTION
Copy a file, converting and formatting according to the operands.

  bs=BYTES        force ibs=BYTES and obs=BYTES
  cbs=BYTES       convert BYTES bytes at a time
  conv=CONVS      convert the file as per the comma separated symbol list
  count=BLOCKS    copy only BLOCKS input blocks
  ibs=BYTES       read BYTES bytes at a time
  if=FILE         read from FILE instead of stdin
  iflag=FLAGS     read as per the comma separated symbol list
  obs=BYTES       write BYTES bytes at a time
  of=FILE         write to FILE instead of stdout
  oflag=FLAGS     write as per the comma separated symbol list
  seek=BLOCKS     skip BLOCKS obs-sized blocks at start of output
  skip=BLOCKS     skip BLOCKS ibs-sized blocks at start of input
  status=noxfer   suppress transfer statistics

BLOCKS and BYTES may be followed by the following multiplicative suffixes:
xM M, c 1, w 2, b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.

Each CONV symbol may be:

  ascii     from EBCDIC to ASCII
  ebcdic    from ASCII to EBCDIC
  ibm       from ASCII to alternate EBCDIC
  block     pad newline-terminated records with spaces to cbs-size
  unblock   replace trailing spaces in cbs-size records with newline
  lcase     change upper case to lower case
  nocreat   do not create the output file
  excl      fail if the output file already exists
  notrunc   do not truncate the output file
  ucase     change lower case to upper case
  swab      swap every pair of input bytes
  noerror   continue after read errors
  sync      pad every input block with NULs to ibs-size; when used
              with block or unblock, pad with spaces rather than NULs
  fdatasync physically write output file data before finishing
  fsync     likewise, but also write metadata

Each FLAG symbol may be:

  append    append mode (makes sense only for output)
  sync      likewise, but also for metadata
  nonblock  use non-blocking I/O

Sending a SIGUSR1 signal to a running `dd' process makes it
print I/O statistics to standard error, then to resume copying.

  $ dd if=/dev/zero of=/dev/null& pid=$!
  $ kill -USR1 $pid; sleep 1; kill $pid
  18335302+0 records in
  18335302+0 records out
  9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s

Options are:

      --help     display this help and exit
      --version  output version information and exit

Report bugs to <bug-coreutils@gnu.org>.

では使ってみます。

C:\Users\takk\Desktop\tmp>dd if=/dev/zero of=outfile bs=1 count=10
dd: opening `/dev/zero': No such file or directory

C:\Users\takk\Desktop\tmp>

オール0のデータを生成したかったのですが、/dev/zeroがないのでエラーになりました。

仕方ががないので、入力ファイルをテキストファイルにして試してみましょう。

C:\Users\takk\Desktop\tmp>echo HELLO>infile
C:\Users\takk\Desktop\tmp>dd if=infile of=outfile bs=1 count=10
7+0 records in
7+0 records out
7 bytes (7 B) copied, 0 seconds, Infinity B/s

C:\Users\takk\Desktop\tmp>

コピーしたファイルの内容を見てみます。

C:\Users\takk\Desktop\tmp>type outfile
HELLO

ふむふむ。コピーはできましたが、オール0データ生成するにはどうすればよいのでしょうか。

続く

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA