GNU/Linux >> Linux の 問題 >  >> Linux

Linux の /dev/zero および /dev/null ファイルとは

「/dev/zero」と「/dev/null」は、空のファイルを作成するのに役立つ 2 つのダミー デバイス ファイルです。しかし、彼らが実際に行っていることには明確な違いがあります。この投稿では、この 2 つの違いと、それらを使用できる場所について説明します。

/dev/zero ファイル

データなしで必要なサイズのファイル (すべてゼロが書き込まれたファイル) を作成するために使用されます。

/dev/zero でファイルを作成しましょう:

# dd if=/dev/zero of=/opt/zero.txt bs=2048 count=2048
2048+0 records in
2048+0 records out
4194304 bytes (4.2 MB) copied, 0.150465 s, 27.9 MB/s

ゼロが連続するファイルを作成します。したがって、/dev/zero は、データに意味を持たない必要なサイズの新しいファイルを作成するために使用されるファイルであると言えます。

/dev/zero ファイルを dd コマンドと組み合わせて使用​​して、ディスクを消去することもできます。例:

# dd if=/dev/zero of=/dev/sda bs=2K conv=noerror,sync

このプロセスで使用できる別のファイルは /dev/null:

/dev/null

多くの場合、すべての出力を送信するのは良いことですが、エラー (一部のコマンドで予期される) を特別なデバイス /dev/null にリダイレクトすることも定期的に行う必要があります。

null の種類は、機能性を提供します。それは、ゴミ箱とブラック ホールの間のどこかです。このファイルは、サイズがゼロのファイルを作成する場合にも役立ちます。

たとえば、現在のディレクトリにファイルとフォルダーがほとんどない場合:

# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

「ls」コマンドの出力を「/dev/null」ファイルにリダイレクトすると、null ファイルを読み取った後でも、出力データを再度取得できません:

# ls > /dev/null
# cat /dev/null
#

/dev/null を再作成する方法

以下のコマンドは 1 行に配置され、セミコロン「;」で区切られて、できるだけ速く実行し、実行中のシステムにできるだけ影響を与えないようにしています。

# rm /dev/null ; mknod -m 0666 /dev/null c 1 3 ;

Execute: yes

すべてが適切に配置されていることを確認します:

# ls -al /dev/null

まとめ

出力を /dev/zero にリダイレクトすると、/dev/null とまったく同じように動作します:データが消えます。ただし、実際には、/dev/null がこの目的で最もよく使用されます。

では、なぜこの特別なデバイスがあるのでしょうか。 /dev/zero は null バイトの読み取りにも使用できるためです。可能なすべての 256 バイトのうち、ヌル バイトは最初の 16 進数の 00 です。ヌル バイトは、コマンドの終了を示すためによく使用されます。


Linux
  1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  2. / dev/randomと/dev/ urandomをいつ使用するか?

  3. Linux – / dev / urandomで「u」という文字は何を意味しますか?

  1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  2. Linux が /dev/tty と /dev/tty0 を使用する方法

  3. Linux で /dev/random を /dev/urandom にリンクするのは間違っていますか?

  1. echo または print /dev/stdin /dev/stdout /dev/stderr

  2. /dev/tcp を使用するために < または > が必要な理由

  3. /dev/sda と /dev/sda1 の違い