私のウェブサイトのテストロードを生成していますが、このコマンドが実際に何を意味するのかを知りたいです。
('dd if=/dev/zero bs=100M count=500 | gzip | gzip -d > /dev/null &')
これまで私が理解してきたことによれば、これは一度に100MiBのデータチャンクをインポートしてディスクにコピーしてから圧縮および解凍することです。これは正しいと思いますか?
ベストアンサー1
コマンドを3つの部分に分けてみましょう。
dd if=/dev/zero bs=100M count=500
gzip
gzip -d > /dev/null &
簡潔なバージョン
dd if=/dev/zero bs=100M count=500
それぞれ100MiBの500個のヌル文字チャンク(ASCIIの0x00)をパイプ(|
)に読み込み、本質的に「供給」しますgzip
。ディスクに書き込まないことに注意してください。gzip
データ圧縮gzip -d > /dev/null
解凍してからデータを削除します。
より長い説明
dd if=/dev/zero bs=100M count=500
- この
dd
コマンドには、通常、if
それぞれof
入力ファイルと出力ファイルを表す2つのパラメータがあります。このパラメータは、NULLif
文字の「配列」(ASCIIでは0x00)を返す特別なデバイスファイル/ dev / zeroに設定されます。 - 100MiBチャンクを読むのが正しいです。この
bs
パラメータが役立ちます。ただし、ディスクには書き込まれません。次のトピックを参照してください。 - その
of
引数がない場合は、標準出力またはstdout
(ディスク上のファイルではありません小川)。 Pipe()はコマンドの後に使用されるため、記録され|
たデータはstdout
ここから別のプログラムにパイプ(供給)されます。gzip
- この
count
パラメーターは、コピーするブロック数を指定します。
gzip
- ファイルを指定せずにgzipを実行すると、
stdin
標準入力(この場合はddのパイプ入力)から読み取られ、標準出力に書き込まれます。 - デフォルトでは(
-d
オプションなし)gzipは圧縮を実行します。
gzip -d > /dev/null
- このオプションを使用してgzipを実行すると、
-d
解凍されます。ここでは、gzipからパイプされた入力を読み込み、stdoutに出力します(ファイルが指定されていないため)。 - この
>
文字は現在のコマンドのストリーム(stdout
、、、stdin
)をリダイレクトします。stderr
ここでは、コマンドstdout
の標準出力をgzip -d
デバイスに記録し、記録された/dev/null
すべてのデータを削除します。 - '&'文字は、シェルにバックグラウンドでプロセスを実行するように指示します。