重定向 是指将原来从标准输入读取数据的文件操作重新定向为从其他文件读取数据
将原来要输出到标准输出的内容重新定向输出到指定的其他文件中
重定向命令:
< : 标准输入重定向
> : 标准输出重定向,清空原来的内容后添加新的内容
>>:标准输出重定向,在原来内容的后面添加新的内容
实例:将原先输出到显示器的数据改为输出到test.txt文件中
[root@Linux home]# echo "hello wolrd" >> ./test.txt
实例:将testfile文件的内容输入重定向到wc命令
[root@Linux home]# wc<testfile.txt
1 4 15
一、操作系统处理信息过程中,包括3类设备文件
1、标准输入 默认是键盘,文件描述符0
2、标准输出 默认是显示器 文件描述1
3、标准错误 默认时显示器 文件描述符2
二、标准输出重定向
> >> 分别用于覆盖、追加文件内容
如果“>”重定向符后指定的文件不存在,那么在命令执行过程中将新建该文件,并将命令结果保存到文件中。
如果“>”重定向符后指定的文件存在,那么命令执行时将清空文件的内容并将命令结果保存到文件中。
[root@node-a shell]# cat /etc/passwd > pass.txt
[root@node-a shell]# cat pass.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
如果“>”重定向的目标是一个已经存在的文件,那么就会将文件中的原有内容清空,在使用“>”重定向时应慎重,确保不会丢失重要数据。
“>”重定向时应慎重,确保不会丢失重要数据。“>>”重定向操作符可以将命令执行的结果重定向并追加保存到指定文件的末尾,而不覆盖文件中原有的内容
三、标准输入重定向
输入重定向就是将命令接收输入的途径由默认的键盘重定向为指定的文件,输入重定向需要使用“<”操作符
四、标准错误重定向
标准错误重定向的表示符号是“2>”,2是标准错误输出的文件描述符
需要将程序运行的所有信息,无论其是正确还是错误,都保存到指定文件中,这时就可以使用符号“&>”或“&>>”来合并正常输出和错误输出
# find / -user student &> find3.txt
特殊的设备文件/dev/null,这是一个被称为“黑洞”的空设备文件,任何进入该设备的数据都将被“吞并”
有的命令在执行过程中会产生一些错误信息,而我们并不关心这些错误信息,只想看到正常执行的结果,这时就可以通过将标准错误重定向到/dev/null文件,来过滤这些错误信息。
# find / user student 2> /dev/null
灵活使用,清空一个文件内容
# cat /dev/null > test.txt