61832


既存のハードディスクやテープデバイス等のデータを完全に消す場合、Linuxでは擬似乱数を上書き保存するやり方として下記のコマンドを投入することが出来ます。  
この時のリダイレクトの意味が良く分かりません。  
`/dev/urandom` は乱数（を作成するファイル？）だと思うのですが、それを `/dev/sdc1`
に渡せ！と言う`>`は理解できるのですが、`<`でddコマンドに渡せ！というのがなぜなのかが良く分かりません。そもそも後半はこの理解で合っているのかどうかも不明です。  
`<`が存在する意味をご存知のかた教えてください！

[code]

    dd < /dev/urandom > /dev/sdc1
    
[/code]


CC BY-SA 4.0
2019-12-27T08:58:18.940
61830
2019-12-27T11:37:10.793
2019-12-27T09:19:00.280
2376
31472
question
linux
Linuxでハードディスクにデータを書き込む際のコマンドについて


ddコマンドのデフォルト動作が **標準入力から標準出力へブロックコピーする** ものだからでしょう。

同じことをコマンドラインオプションでも指定できるので、リダイレクトにするかオプションにするかは趣味の問題でしょうか。  
以下いくつかの記事から適当に混合して引用。

[Man page of DD](https://linuxjm.osdn.jp/html/GNU_coreutils/man1/dd.1.html)  
[dd (UNIX) - Wikipedia](https://ja.wikipedia.org/wiki/Dd_\(UNIX\))  
[dd - コマンド (プログラム) の説明 - Linux コマンド集
一覧表](https://kazmax.zpp.jp/cmd/d/dd.1.html)

> ddはUnix系のシステムにあるプログラム（コマンド）で、データのコピーや変換をブロックデバイスを直接読み書きして行うことが特徴である。
>
> 入出力を指定するオプション
>
>   * if=[file] : 標準入力の代わりに、ファイル file から読み込む
>   * of=[file] : 標準出力の代わりに、ファイル file へ書き出す
>

>
> dd はファイルを指定された入出力ブロックサイズで (デフォルトでは標準入力から標準出力へ) コピーする。 入出力の間に変換を指定することもできる。
>
> ハードディスク全体を完全消去する
[code]

>     dd if=/dev/urandom of=/dev/hda
>  
[/code]


CC BY-SA 4.0
2019-12-27T10:17:29.800
61832
2019-12-27T10:17:29.800
2020-06-17T08:14:45.997
-1
26370
61830
answer


@kunif さんの回答の補足として、今回実行した `dd < /dev/urandom > /dev/sdc1` の場合は  
以下の様な流れになっています。

  1. `dd` コマンドの入力元として `<` のリダイレクトで `/dev/urandom` を用いる
  2. `dd` コマンドの出力先は省略されているので標準出力が使われる
  3. `dd` コマンドの実行結果を `>` で `/dev/sdc1` にリダイレクト


CC BY-SA 4.0
2019-12-27T11:37:10.793
61835
2019-12-27T11:37:10.793
3060
61830
answer