当前位置: 技术问答>linux和unix
请教bash中重定向符“-” 的使用问题
来源: 互联网 发布时间:2015-06-03
本文导语: $ (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -) 该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去 在一文档中看到了这么一段,...
$ (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)
该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去
在一文档中看到了这么一段,我试了一下,不行,请教到底怎么用啊?
该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去
在一文档中看到了这么一段,我试了一下,不行,请教到底怎么用啊?
|
首先,“-”并不是重定向符,在这里它是stdout/stdin意思,
(cd /source/directory && tar cf - . )中,它和f option一起就是把/source/directory压缩出来的文件输出到stdout,
其次,“|”才是楼上提到的“管道”,它把stdout重定向到后面的filter程序的stdin。在这里是被压缩后的程序由括弧里的sub shell处理。
最后, (cd /dest/directory && tar xvfp -)中,“-”和f option一起表示让tar从标准输入读取要解压的文件
(cd /source/directory && tar cf - . )中,它和f option一起就是把/source/directory压缩出来的文件输出到stdout,
其次,“|”才是楼上提到的“管道”,它把stdout重定向到后面的filter程序的stdin。在这里是被压缩后的程序由括弧里的sub shell处理。
最后, (cd /dest/directory && tar xvfp -)中,“-”和f option一起表示让tar从标准输入读取要解压的文件
|
作为管道使用