横に

横に

私のウェブサイトのテストロードを生成していますが、このコマンドが実際に何を意味するのかを知りたいです。

('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すべてのデータを削除します。
  • '&'文字は、シェルにバックグラウンドでプロセスを実行するように指示します。

おすすめ記事