今天kiddd带大家学习的是LInux的一个知识内容——redirection,重定向。了解重定向之前首先需要知道Linux的三种文件描述符。
输出重定向
当我们正常执行Linux命令时,Linux命令行会将命令写入后的输出,写入到标准输出文件当中,并将输出的结果打印到屏幕上,如:
这种文件叫做标准输出文件,它到文件描述符为1。
第二种情况呢,当我们执行错误的Linux命令时,Linux会将错误命令后的输出写入到文件描述符为2的标准错误输出文件中,并显示到屏幕上。
而将原本输出在屏幕上的内容转而输出到其他地方——这就是重定向的一个基本的作用。
将标准输出重定向到某个文件中
如将ls当前目录的输出重定向到一个文件中,操作到方法是:ls >xxx.txt
我们打开查看一下,果然,输出到内容被重定向到了output.txt中
将标准错误输出重定向到某个文件中
标准错误输出的重定向简单地使用>操作符是行不通的,这时我们就用到了之前学习的知识——加上标准错误输出文件描述符:2。ls XXX 2>output.txt
搞定。
- 将两个文件合并成一个文件
重定向的另一个作用即合并文件:
xxx file1 file2 >file3
(file1中有hello,file2中有world,file3为空。重定向后file3中有字符串:hello world)
同时重定向所有输出:
s &>output.txt
文件存在时,>file ,清空文件。
- 文件不存在时,>file,新建文件。
- 重定向在脚本中的使用:
!/usr/bin/env bash
>output.txt
for dir in /bin/usr /usr/bin
do
ls $dir &>output.txt
done
输入重定向
除了输出重定向外,还有输入重定向,其作用为:
将某个从键盘读取的输入重定向到读取某个文件。
其操作符为:<
(与输出重定向刚好相反)
总结
Linux命令是软件开发者必须掌握的。重定向在日常开发中有很多衍生可以提升效率。另外进阶使用及shell变成更是用处多多,更多的等待着你去探索。