重定向的应用区分

sh/bash/dash/ksh/zsh等Shell脚本
回复
LaoLiulaoliu
帖子: 131
注册时间: 2006-10-25 17:50
来自: 南京
送出感谢: 0
接收感谢: 0
联系:

重定向的应用区分

#1

帖子 LaoLiulaoliu » 2010-04-24 1:51

当前目录下有scrypto.ab scrypto.ad scrypto.af scrypto.aa scrypto.ac scrypto.ae scrypto.inf 这样几个文件。(FreeBSD安装包/8.0-RELEASE/src/ 下面的东西)。只有scrypto.inf是可以打开的文本。
解压命令是:
cat scrypto.?? | tar --unlink -xpzf - -C /home/myhome/
可是我试试
cat scrypto.?? | tar --unlink -xpzf -C /home/myhome/

却失败。区别只是少了一横,请问这一横在重定向中的用途?或者跟重定向没关心。
scrypto.??的几个文件组成了压缩文件,所以用cat crypto.?? 。但是cat出来的东西不是压缩包,所以直接重定向tar -xpzf 也不行,但是加入tar -xpzf - 就可以了,请问这一横是哪里的什么用法?
LaoLiulaoliu
帖子: 131
注册时间: 2006-10-25 17:50
来自: 南京
送出感谢: 0
接收感谢: 0
联系:

Re: 重定向的应用区分

#2

帖子 LaoLiulaoliu » 2010-04-24 2:28

将当前目录 ladungmess 下的所有东西打包压缩,快速移动到另一个目录 backup 下:

[root@amt55 ladungmess]# tar cf - . | (cd /home/wei/backup; tar xvfp -)

这个命令对于在不同目录之间转移文件很有用。需要注意的是这里的重定向其标志是符号"-"'。 第一个"-"是一个输出重定向,它要求 tar 的输出(压缩的包)不是某个磁盘文件,而是 stdout,这个 stdout 通过管道变为第二个命令 tar 的 stdin; 第二个"-"是一个输入重定向,它要求第二个 tar 的输入不是来自某个磁盘文件,而是来自 stdin,也就是由管道传来的第一个 tar 的 stdout。
回复

回到 “Shell脚本”