Linux-I/O重定向详解与实战技巧
覆盖:带有单括号“>”的命令将覆盖现有的文件内容。
>:标准输出 :标准错误登录后复制
注意:写“1>”或“>”和“0”。
用法: cat >登录后复制
追加: 带有双括号“>>”的附加命令不会覆盖现有的文件内容。
>>-标准输出 >-标准错误 用法: cat >>登录后复制
重定向到程序:
重定向到程序管道将流从一个程序重定向到另一个程序。当管道用于将一个程序的标准输出发送到另一个程序时,第一个程序的数据将不会显示在终端上,只显示第二个程序的信息。尽管管道的功能看起来可能与“>”和“>>”相似,但有显著差异。管道将数据从一个程序重定向到另一个程序,而括号仅用于文件的重定向。
用法: ls *.txt | cat > txtFile登录后复制
Linux input 重定向
:
bash shell使用stdin获取输入。在输入重定向中,将文件输入命令,并在“
Syntax: cat [root@localhost ~]# cat aa [root@localhost ~]#登录后复制
:
EOF可以键入,也可以通过按键调用。任何单词都可以代替“EOF”,就像我们使用的“last”一样。
Syntax: cat登录后复制
:
字符串用于将字符串直接传递给命令。
Example: base64登录后复制
Linux输出重定向
输出重定向用于将一个命令的输出放入文件或另一个命令。
> stdout:
stdout使用大于号’>’重定向。当shell遇到’>’号时,它将清除文件:
Example: echo Hello everyone. > afile.txt登录后复制
输出文件被擦除:
在输出重定向中,在扫描命令行的过程中,shell将遇到“>”符号,并将清除文件。
Example: zcho Welcome > afile.txt登录后复制
nolobber:
我们可以在nolobber选项的帮助下,在使用’>’符号时防止文件删除。
Syntax: set -o noclobber (防止覆盖) set +o noclobber (覆盖) Example: echo Learn Linux. > newfile.txt登录后复制
否定noclobber:
重写nolobber意味着您可以在使用’>|’符号设置nolobber时覆盖现有文件。
Syntax: command >| Example: echo Welcome to JavaTpoint. >| newfile.txt登录后复制
>>append:
append’>>‘: 不允许覆盖文件内容,因此显示新的和旧的文件内容。
Syntax: command >> Example: echo You all are welcome here. >> newfile.txt登录后复制
Linux错误重定向
2> stderr:
命令’2>’重定向输出的错误,它可以通过重定向错误消息来帮助我们减少显示的混乱。
Example: zcho hyii 2> /dev/null登录后复制
2> &1:
此命令有助于重定向同一文件中的stdout和stderr。
Example: newfile.txt > abc.txt and error.txt 2>&1登录后复制
注意:重定向的顺序非常重要:
ls > dirlist 2>&1登录后复制
然后,stdout和stderr都将被定向到文件目录列表:
ls 2>&1 > dirlist登录后复制
然后,只有stdout会重定向到目录列表。这是因为,在将stdout重定向到目录列表之前,stderr已经复制了stdout。