📅  最后修改于: 2020-12-08 03:10:37             🧑  作者: Mango
重定向可以定义为从命令读取输入的位置更改为命令发送输出的位置的方式。您可以重定向命令的输入和输出。
对于重定向,使用元字符。重定向可以到文件(外壳程序元字符是尖括号“ <”,“>”)或程序(外壳程序元字符是管道符号“ |”)中。
bash shell在I / O重定向中具有三个标准流:
每个流使用重定向命令。单括号“>”或双括号“ >>”可用于重定向标准输出。如果目标文件不存在,将创建一个具有相同名称的新文件。
覆写
带有单括号“>”的命令将覆盖现有文件内容。
注意:写“ 1>”或“>”以及“ 0 <”或“ <”是同一回事。但是对于stderr,您必须写'2>' 。
句法:
cat >
例:
cat > sample.txt
查看上面的快照,命令“ cat> sample.txt”创建了内容为“ a,b,c”的“ sample.txt”。使用命令“ cat> sample.txt”再次创建相同的文件“ sample.txt”,这一次它覆盖了较早的文件内容,并且仅显示“ d,e,f”。
带有双括号“ >>”的命令不会覆盖现有文件内容。
句法:
cat >>
例:
cat >> sample.txt
查看上面的快照,在这里我们再次在命令“ cat >> sample.txt”中使用“ >>”创建了两个相同名称的文件。但是这次,内容不会被覆盖,并且所有内容都会显示出来。
管道将流从一个程序重定向到另一个程序。当使用管道将一个程序的标准输出发送到另一个程序时,第一个程序的数据将不会显示在终端上,而只会显示第二个程序的数据。
尽管管道的功能可能看起来与“>”和“ >>”的功能相似,但有显着差异。管道将数据从一个程序重定向到另一个程序,而方括号仅用于文件重定向。
例:
ls *.txt | cat > txtFile
查看上面的快照,命令“ ls * .txt | cat> txtFile”已将所有“ .txt”文件放入新创建的文件“ txtFile”中。