当前位置:网站首页>快速理解重定向
快速理解重定向
2022-07-17 05:22:00 【我是渣渣辉】
重定向:
重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号。
输出重定向操作符: > 、 >>
输入重定向操作符: < 、 <<
输入重定向:指的是重新指定设备来代替键盘作为新的输入设备;
输出重定向:指的是重新指定设备来代替显示器作为新的输出设备。
通常是用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备通常指的就是文件。
1、Linux输入重定向
对于输入重定向来说,其需要用到的符号以及作用如下表所示:
| 命令符号格式 | 作用 |
|---|---|
| 命令 < 文件 | 将指定文件作为命令的输入设备 |
| 命令 << 分界符 | 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串 |
| 命令 < 文件 1 > 文件 2 | 将文件 1 作为命令的输入设备,该命令的执行结果输出到文件 2 中。 |
例如:
默认情况下,cat 命令会接受标准输入设备(键盘)的输入,并显示到控制台,但如果用文件代替键盘作为输入设备,那么该命令会以指定的文件作为输入设备,并将文件中的内容读取并显示到控制台。
[[email protected] ~]# cat < /etc/passwd
1
输出结果跟[[email protected] ~]# cat /etc/passwd一样,只是该部分代码是以 /etc/passwd 文件作为输入设备。
再例如:
[[email protected] ~]# cat << 0
// 下面是输入(带>号)
>c.biancheng.net
>Linux
>0
// 下面是控制台打印出刚刚输入的信息
c.biancheng.net
Linux。
由上述代码可以看出,当指定了 0 作为分界符之后,只要不输入 0,就可以一直输入数据。
不过总的来说,输入重定向使用比较少。
2、Linux输出重定向
输出重定向的频率更高,和输入重定向不同的是,输出重定向还可以细分为标准输出重定向和错误输出重定向两种技术。
输出重定向用到的符号及作用如下所示:
| 命令符号格式 | 作用 |
|---|---|
| 命令 > 文件 | 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,会清空原有数据,再写入新数据。 |
| 命令 2> 文件 | 将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,会清空原有数据,再写入新数据。 |
| 命令 >> 文件 | 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,新数据将写入到原有内容的后面。 |
| 命令 2>> 文件 | 将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,新数据将写入到原有内容的后面。 |
| 命令 >> 文件 2>&1或者命令 &>> 文件 | 将标准输出或者错误输出写入到指定文件,如果该文件中已包含数据,新数据将写入到原有内容的后面。注意,第一种格式中,最后的 2>&1 是一体的,可以认为是固定写法。 |
| 例如: |
$ ls -l > lsoutput.txt
1
这条命令把ls命令的输出保存到文件lsoutput.txt中。
$ ps >> lsoutput.txt
1
这条命令把ps命令的输出附加到lsoutput.txt文件的尾部。
例如
>
[[email protected] ~]# echo 123 > file
[[email protected] ~]# more file
123
>>
[[email protected] ~]# echo 456 >> file
[[email protected] ~]# more file
123
456
2>
[[email protected] ~]# 123 2> file
[[email protected] ~]# more file
bash: 123: command not found...
2>>
[[email protected] ~]# 456 2> file
[[email protected] ~]# 123 2>> file
[[email protected] ~]# more file
bash: 456: command not found...
bash: 123: command not found...
&>
[[email protected] ~]# echo 123 &> fule
[[email protected] ~]# more fule
123
[[email protected] ~]# 123 &> fule
[[email protected] ~]# more fule
bash: 123: command not found...
>&
[[email protected] ~]# 123 >& fule
[[email protected] ~]# echo 123 >& fule
将1重定向到文件,将2重定向到1
[[email protected] ~]# echo 123 1> file 2>&1
[[email protected] ~]# more file
123
将2重定向到文件,将1重定向到2
[[email protected] ~]# 123 >& fule
[[email protected] ~]# echo 123 >& fule
bash: 123: command not found...
将文件重定向到0
bash: 123: command not found...
cat从标准输入读取内容,然后输出到文件中
[[email protected] ~]# cat < file &>> file
[[email protected] ~]# more file
bash: 123: command not found...
cat: -: input file is output file
[[email protected] ~]# cat < file &>> fule
[[email protected] ~]# more fule
123
bash: 123: command not found...
cat: -: input file is output file
cat: -: input file is output file
拓展
使用文件描述符重定向的复杂用法
使用文件描述符的重定向都使用了&符号:
cmd >&n 把输出送到文件描述符n
cmd m>&n 把输出到文件符m的信息重定向到文件描述符ncmd >&- 关闭标准输出
cmd <&n 输入来自文件描述符n
cmd m<&n m来自文件描述符n
cmd <&- 关闭标准输入
cmd <&n- 移动输入文件描述符n而非复制它
cmd >&n- 移动输出文件描述符 n而非复制它
边栏推荐
- Intranet penetration server building tutorial, NPs use tutorial
- Tianyi cloud Hangzhou virtual machine (VPS) performance evaluation
- ARM开发环境入门
- Yuanzi racehorse.
- 文本三剑客之awk命令--截取
- Performance evaluation and comparison of Huawei cloud Kunpeng arm ECs and x86 ECS
- 阿里云、腾讯云、华为云、Ucloud(优刻得)、天翼云 的云服务器性能测试和价格对比
- 传奇怎么开服?开传奇私服需要准备什么呢?
- Comparison of advantages and disadvantages between SD NAND and EMMC
- 银河麒麟服务器系统搭建本地和局域网yum源
猜你喜欢

【自动化测试】——robotframework实战(二)新建测试用例

STEAM游戏高主频i9-12900k 搭建CS:GO服务器

中国知网论文free下载的方法

Temperature acquisition experiment and experimental experience based on I2C

Share the application cases of CS brand patch T card in the field of hunting camera

传奇手游怎么开服?需要投资多少?需要那些东西?

Good partner of single chip microcomputer - CS Genesis SD NAND flash

2019cs brand sdnand and EMMC selection comparison important analysis

ARM开发环境入门

Ucloud Shanghai arm cloud server evaluation
随机推荐
各大云服务厂商 轻量应用服务器 性能评测对比,阿里云、腾讯云、华为云、Ucloud
Arm server building my world (MC) version 1.18.2 private server tutorial
可怜小凡(模拟)
Information on successful cooperation between CS brand sdnand and stm32mcu
Xiaodi network security notes - Information Collection - architecture, construction, WAF (8)
【自动化测试】——robotframework实战(三)编写测试用例
【自动化测试】——robotframework实战(二)新建测试用例
Gentoo安装教程(Systemd+Gnome)
ssh远程登录服务
邮资范围(数组 or +函数)
What is data center?
Technical specification for secure electronic signature and password gm/t 0031 | GB / T 38540 format OpenSSL package analysis
notepad++下划线以及大小写字母置换
Postage range (array or + function)
传奇手游怎么开服?需要投资多少?需要那些东西?
企业数据治理之勒索病毒篇
Drawing PCB with Altium Designer
tail -f暂停方法
STEAM游戏高主频i9-12900k 搭建CS:GO服务器
Commande awk du troisième épéiste - - interception