manthrottle命令示例中的“-”是什么

manthrottle命令示例中的“-”是什么

如果这听起来很菜鸟,请原谅。我只是在检查节流阀的手册页,了解管道如何与节流阀携手工作。因此,在检查手册页示例时,我在下面的命令中保留了“-”。在示例部分的手册页中,第一个示例如下:

   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

我将把命令分解成几个部分并逐个解释:

tar czf - .

此命令指示tar从当前目录创建存档,并将输出保存到-f参数指定的文件中。这里的文件是-,表示标准输出。

|角色从左侧命令获取标准输出,并将其作为标准输入传递给右侧命令。

在这种情况下, 的输出tar作为输入传递给throttle -m 1,然后将输出提供给最后一个命令:

ssh host 'tar xzf - -C /bak'

输出通过 SSH 传输到tar在 上运行的命令host,使用 SSH 作为管道传输。该xzf -参数意味着tar从标准输入读取并提取存档。提取之前,tar更改/bak目录。

总而言之,在创建归档文件时,-f -tar 意味着将结果输出到标准输出(stdout)。

当提取归档文件时,-f -tar 意味着从标准输入(stdin)读取输入归档文件。

答案2

要查看的相关部分确实是-f --您问题中的参数是选项的参数-f,指定文件名)

这意味着读取/写入文件-,这是文件名的常见特殊情况。-在这种情况下,通常指的是 stdin(读取时)或 stdout(写入时)。

即,第一个tar进程将存档写入 stdout,然后通过管道传输到throttle,然后通过管道传输到tar从 stdin 读取存档的第二个进程。

相关内容