初心者のように聞こえたらすみません。パイプがスロットルとどのように連動するかを調べるために、スロットルのマニュアルページを確認していました。そのため、マニュアルページの例を確認しながら、以下のコマンドに「-」を残しました。例セクションのマニュアルページでは、最初の例は次のとおりです。
To limit the bandwidth of a tar back-up to a remote server to 1 Mbit/s, type:
$ tar czf - . | throttle -m 1 | ssh host 'tar xzf - -C /bak'
ここで、czfの後ろの「-」とxzfの後ろの「-」を理解したいと思います。質問が明確であれば、コマンド全体を喜んで理解します。
よろしくお願いします。
ベストアンサー1
コマンドをいくつかの部分に分けて1つずつ説明します。
tar czf - .
このコマンドは、tar
現在のディレクトリからアーカイブを生成し、引数で指定された-f
ファイルに出力を保存するように指示します。ここでファイルは-
標準出力を意味します。
役割|
は左コマンドの標準出力を取得し、右コマンドに標準入力として渡します。
この場合、出力はtar
入力に渡され、最後のthrottle -m 1
コマンドに出力が与えられます。
ssh host 'tar xzf - -C /bak'
出力は、SSHを介してパイプとしてSSHを使用してtar
実行されるコマンドに送信されます。host
このパラメータは、標準入力からアーカイブを読み取って抽出することをxzf -
意味します。tar
抽出する前にディレクトリをtar
変更してください/bak
。
要約すると、アーカイブを作成するとき、-f -
tarは結果を標準出力(stdout)に出力することを意味します。
アーカイブを抽出するとき、-f -
tarは標準入力(stdin)から入力アーカイブを読み取ることを意味します。