Linux Bash重定向表格

重定向命令描述
cmd > file重定向一个命令的标准输出到文件
cmd 1> file同上,1代表默认的标准输出的文件描述符
cmd 2> file重定向一个命令的标准错误输出到文件,2代表stderr的文件描述符
cmd >> filestdout,到已有文件末尾
cmd 2>> filestderr,到已有文件末尾
cmd &> file重定向命令的stdout和stderr到文件
cmd > file 2>&1同上,注意顺序不能颠倒。
cmd > /dev/null忽略命令的标准输出
cmd 2> /dev/null忽略命令的标准错误输出
cmd &> /dev/null忽略命令的stdout和stderr
cmd < file重定向文件内容到标准输入
cmd << EOL
line1
line2
EOL
重定向多行内容到标准输入
cmd <<- EOL
foo
bar
EOL
同上,但是去掉了
cmd <<< "string"重定向一行到标准输入
exec 2> file重定向所有命令到stderr
exec 3< file使用自定义描述符读取
exec 3> file使用自定义描述符写
exec 3<> file使用自定义描述符读写
exec 3>&-关闭一个文件描述符
exec 4>&3文件描述符拷贝, 3拷贝到4
exec 4>&3-3拷贝到4,并删除3文件描述符
echo "foo" >&3往自定义描述符里写
cat <&3从自定义描述符里读
(cmd1; cmd2) > file重定向多个命令到stdout(使用sub-shell)
{cmd1; cmd2;} > file重定向多个命令到stdout(快,不使用sub-shell)
exec 3<> /dev/tcp/host/port打开一个TCP连接(针对bash)
exec 3<> /dev/udp/host/port打开一个UDP连接(针对bash)
cmd <(cmd1)重定向cmd1的输出到匿名fifo,然后传到cmd作为参数
cmd < <(cmd1) 例子: diff <(find /path1 | sort) <(find /path2 | sort)
cmd <(cmd1) <(cmd2) 把cmd1和cmd2的输出作为cmd的参数
cmd1 >(cmd2)
cmd1 > >(cmd2)
cmd1 | cmd2 cmd1的输出是cmd2的输入,同 cmd1 > >(cmd2),同cmd2 < <(cmd1),同> >(cmd2) cmd1,同s < <(cmd1) cmd2
cmd1 |& cmd2
cmd | tee file 重定向到文件并在终端输出
exec {filew}> file
cmd 3>&1 1>&2 2>&3 交换cmd的stdout和stderr
cmd > >(cmd1) 2> >(cmd2) cmd的stdout到cmd1,cmd的stderr到cmd2
cmd1 | cmd2 | cmd3 | cmd4
echo ${PIPESTATUS[@]}
找到所有管道命令的退出码

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注