Linux重定向解析

输入和输出

重定向的概念

**将原本要输出到屏幕的数据信息,重新定向到指定的文件中。 **

比如:每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中。这样第二天通过查看结果文件,就知道昨天备份数据是成功,还是失败。

命令返回值

# 如何判断上一条执行的命令是否成功

echo $?
显示0 就是成功 
其他数字是不成功

输入和输出

名称 文件描述符 作用
stdin 0 标准输入
stdout 1 标准输出
stderr 2 错误输出
文件名称 3+
[root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
postfix    7279   7075  0 18:07 ?        00:00:00 pickup -l -t unix -u

[root@localhost ~]# ll /proc/7279/fd
total 0
lrwx------. 1 root root 64 Mar 24 18:08 0 -> /dev/null
lrwx------. 1 root root 64 Mar 24 18:08 1 -> /dev/null
l-wx------. 1 root root 64 Mar 24 18:08 10 -> pipe:[45439]
lrwx------. 1 root root 64 Mar 24 18:08 2 -> /dev/null
lr-x------. 1 root root 64 Mar 24 18:08 3 -> pipe:[38084]
l-wx------. 1 root root 64 Mar 24 18:08 4 -> pipe:[38084]
lrwx------. 1 root root 64 Mar 24 18:08 5 -> socket:[38014]
lrwx------. 1 root root 64 Mar 24 18:08 6 -> socket:[38012]
lrwx------. 1 root root 64 Mar 24 18:08 7 -> socket:[45423]
lrwx------. 1 root root 64 Mar 24 18:08 8 -> anon_inode:[eventpoll]
lr-x------. 1 root root 64 Mar 24 18:08 9 -> pipe:[45439]
l-wx------. 1 root root 64 Mar 24 18:08 92 -> pipe:[38097]

0:标准输入 
1:标准输出
2:错误输出
(0 1 2 都是常驻)
3:以上 都是文件名称

img

输出重定向

重定向: 改变标准输入、标准输出的方向的就是重定向

类型 操作符 用途
标准覆盖输出重定向 1> 将命令的执行结果输出到指定的文件中, 而不是直接显示在屏幕上
标准追加输出重定向 >> 将命令执行的结果追加输出到指定文件
错误覆盖输出重定向 2> 将程序的错误结果输出到执行的文件中,会覆盖源文件内容
错误追加输出重定向 2>> 将程序输出的错误结果以追加的方式输出到指定文件中,不会覆盖源文件
标准输入重定 << 将命令中接收输入的途径由默认的键盘更改为指定的文件

标准输出覆盖重定向

&:将正确输出和错误输出都定向到一个文件
cat sadhj &> a
[root@localhost ~]# cat a
cat: sadhj: No such file or directory

img

标准输出追加重定向

[root@localhost ~]# echo hello yl >> a
[root@localhost ~]# cat a
cat: sadhj: No such file or directory
hello yl

img

错误输出重定向

[root@localhost ~]# mv /sajklda 2> a
[root@localhost ~]# cat a
mv: missing destination file operand after ‘/sajklda’
Try 'mv --help' for more information.

img

正确与错误都输入到相同位置

find / -name "*.conf" &>ab
查找有.conf的文件并把所有东西都定向到ab
find / -name "*.conf" >ab 2&>1
查找有.conf的文件并把正确输出放入ab 把错误输出(2)定向为正确输出(1)

img

img

重定向到空设备到垃圾桶

#空设备,即将产生的输出丢掉
[root@zls ~]# ls /root /error >ab 2>/dev/null
[root@zls ~]# ls /root /error >ab &>/dev/null

img

输出重定向

dd 读取、转换并输出数据。
bs 代表字节为单位的块大小
count 代表被复制的块数
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出

dd if=/dev/zero of=/root/a bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.162145 s, 194 MB/s


dd bs=1k count=1024 </dev/zero >/root/b
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00298446 s, 351 MB/s
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇