• ベストアンサー

ddコマンド

sudo dd if=/dev/zero of=/home/pi/test bs=8k count=50k conv=fsync; sudo rm -f /home/pi/test を実行しようとしたところ、 sudo dd if=/dev/zero of=/home/pi/test bs=8k count=50k で実行してしまいました。 何をしてしまったでしょう?? 消そうと思っても、どこにコピーされたか、わかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>何をしてしまったでしょう?? sudo ddはroot権限でファイルのコピーを実行するものです。 if=でコピー元のファイルを、of=でコピー先のファイルを指定します。 bs=はバイト数を、count=はブロック数(bs=で指定したバイト数を何個コピーするかを指定する) しかし、if=/dev/zeroは0バイトのファイルなので結果として0バイトのtestと言うファイルが/home/piに作成されるはずです。 >実は >sudo dd if=/dev/zero bs=8k count=50k of=の指定が無いのでコンソールへ出力されていると思います。 従って、モニター(端末画面)に表示されるだけだったのでしょう。 >消そうと思っても、どこにコピーされたか、わかりません。 前述のようにof=でコピー先を指定していないのでddコマンドは標準出力のコンソール(モニター)へ出力している筈です。(モニターへはファイルを作成できませんので実行結果が表示されたのでは?) 端末でコマンドを使うときはヘルプで動作を確認してから実行すべきでしょう。 特にsudo(root権限)で実行するのは大変危険です。

ferra
質問者

お礼

なんとなく分かりました。噛み砕いた説明、ありがとうございました!他の方もありがとうございました!

その他の回答 (4)

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.4

No.2です。 >・・・消えたのでしょうか? of= を省略するとモニターに表示されます。 今回は/dev/zero(つまり何もないデータ)を出力していますので、モニターに出力されているのですが、何も無いので何も見えません。 --- 確認のためには、例えば、/home/pi/kakunin.txtファイルとして確認のためのテキストデータを作成しておいて下記のように of= を指定しなければ sudo dd if=/home/pi/kakunin.txt bs=8k count=50k kakunin.txtの内容がモニターに表示されます。

回答No.3

>sudo dd if=/dev/zero bs=8k count=50k of=を省略した場合、標準出力へ出力され、ファイルは作成されません。 >またdev/zeroとは何のことでしょうか?す、すみません。。 https://ja.wikipedia.org/wiki//dev/zero

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.2

>何をしてしまったでしょう? /home/pi フォルダに、中身が何もない(NULLデータ)testという名前のファイルを作成して、続けてtestファイルを削除しています。 したがって、testファイルはすでに消えています。 --- /dev/zero とはNULLデータという意味です。 --- 一般論ですが、どんな結果になるのか、自分でもわからないコマンドを実行するのは、やめたほうがいいですよ。 たとえば /dev/zero の意味もわからないで重要なファイルに出力すると、ファイル内容はすべて消えてしまいます。

ferra
質問者

補足

ありがとうございます。以後気を付けます; sudo dd if=/dev/zero bs=8k count=50k この場合は、データを作成しているのが判ったのですが、 testという名前も付いていません。500MB位が作られた気がするのですが、 /home/pi/以下には入っておらず、デフォルト?の場所かもしれないと思い、どこに作られたか知りたかったのですが、消えたのでしょうか??

  • ballville
  • ベストアンサー率47% (233/487)
回答No.1

もう一回やって大丈夫です。 元の、 sudo dd if=/dev/zero of=/home/pi/test bs=8k count=50k conv=fsync; sudo rm -f /home/pi/test はpiユーザのホームフォルダにゼロ埋めしたtestという名前のファイルを生成し、そのあとで消すコマンドラインです。 sudo rm -f /home/pi/test の部分をあとから打ち込めばゴミファイルは消えます。

ferra
質問者

補足

本当にそそっかしくですみません! 実は sudo dd if=/dev/zero bs=8k count=50k このように打ってしまい、home/pi以下に無くて混乱しました。 どこを消せばよいのでしょうか? またdev/zeroとは何のことでしょうか?す、すみません。。

関連するQ&A