在Linux中短横线(-)可以表示输出流,具体用法如下。
搭配cat
cat -
如果指定cat的文件为-,表示从标准输入读取(和直接使用cat,好像没什么区别)
搭配|
echo 123 | cat -
表示把管道符前面的输出流,在交给cat执行一遍(这就很牛逼了)
例子:
如果操作系统没有scp命令,只有ssh,那么是不是就不能远程拷贝了(前提:没有openssh-clients软件包)
利用-,就可以实现:
cat jdk.tar.gz | ssh 192.168.56.101 'cat - > /tmp/jdk.tar.gz'
含义是,cat jdk.tar.gz 产生输出流, 在管道后面的 - ,则可以接受输出流,并重定向到 /tmp/jdk.tar.gz