linux 重定向中的 &> 和 >的作用?

我知道 0>
1>
2>的作用
上面两个的作用呢?
ls llllllll page1.html &> log4.txt
ls page1.html > log2.txt
ls llllllll page1.html > log3.txt 2>&1

这几个 在你的例子里结果都一样阿,没区别阿

linux重定向中&>和>&是一个意思,是“复制一个文件描述符”的意思。


一、linux重定向的设备代码


      标准输入(stdin) 代码为 0 ,实际映射关系:/dev/stdin -> /proc/self/fd/0 

      标准输出(stdout)代码为 1 , 实际映射关系:/dev/stdout -> /proc/self/fd/1

     标准错误输出(stderr)代码为 2 ,实际映射关系: /dev/stderr ->/pro/self/fd/2

    举例:正常输出和错误信息都不显示,把标准输出和标准错误都重定向到/dev/null

 # ls 1>/dev/null 2>/dev/null


二、linux重定向的符号意义


    1.  > 和 < 分别代表重定向的方向,是从左到右还是从右到左

    2.  >> 和 << 代表追加,也就是不改变重定向目标文件原有的内容,追加在后面。

#举例: 将执行 "ls -lag" 命令的结果追加到文件 lee.dat 中
ls -lag >> lee.dat

    3.  >&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;


    4.  <&n 标准输入复制自文件描述符 n;

#举例: 让标准错误输出和标准输入一样都被存入到文件中
find /home -name lee* > all_lee 2>& 1

    5.  n<&- 表示将 n 号输入关闭
    6.  <&- 表示关闭标准输入(键盘)
    7.  n>&- 表示将 n 号输出关闭
    8.  >&- 表示将标准输出关闭

#举例: 关闭 1 ,2 文件描述符
ls test.sh test1.sh  1>&- 2>&-

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-28
&> 等如 2>&1 , > 等如 1> ,那是缩写,
1 是 STDOUT, 2 是 STDERR, 2>&1 就是 STDOUT 和 STDERR
同导向到同一文件里, 例

nc10@your-5554c55be4 ~
$ ls llllllll
ls: 无法访问 llllllll: No such file or directory

nc10@your-5554c55be4 ~
$ ls llllllll 2> log.txt

nc10@your-5554c55be4 ~
$ ls page1.html > log2.txt

nc10@your-5554c55be4 ~
$ cat log.txt log2.txt
ls: 无法访问 llllllll: No such file or directory
page1.html

nc10@your-5554c55be4 ~
$ ls llllllll page1.html > log3.txt 2>&1

nc10@your-5554c55be4 ~
$ cat log3.txt
ls: 无法访问 llllllll: No such file or directory
page1.html

nc10@your-5554c55be4 ~
$ ls llllllll page1.html &> log4.txt

nc10@your-5554c55be4 ~
$ cat log4.txt
ls: 无法访问 llllllll: No such file or directory
page1.html

nc10@your-5554c55be4 ~
$
第2个回答  推荐于2017-11-27
&> 等如 2>&1 , > 等如 1> ,那是缩写,
1 是 STDOUT, 2 是 STDERR, 2>&1 就是 STDOUT 和 STDERR
同导向到同一文件里, 例

nc10@your-5554c55be4 ~
$ ls llllllll
ls: 无法访问 llllllll: No such file or directory

nc10@your-5554c55be4 ~
$ ls llllllll 2> log.txt

nc10@your-5554c55be4 ~
$ ls page1.html > log2.txt

nc10@your-5554c55be4 ~
$ cat log.txt log2.txt
ls: 无法访问 llllllll: No such file or directory
page1.html

nc10@your-5554c55be4 ~
$ ls llllllll page1.html > log3.txt 2>&1

nc10@your-5554c55be4 ~
$ cat log3.txt
ls: 无法访问 llllllll: No such file or directory
page1.html

nc10@your-5554c55be4 ~
$ ls llllllll page1.html &> log4.txt

nc10@your-5554c55be4 ~
$ cat log4.txt
ls: 无法访问 llllllll: No such file or directory
page1.html

nc10@your-5554c55be4 ~
$本回答被提问者采纳
第3个回答  2016-06-05
"> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);
>>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响,另外你是感兴趣的话可以看下刘遄老师写的《Linux就该这么学》作为入门的书籍,觉得不错的话采纳下哦~
"
第4个回答  2009-06-01
0> 重定向 标准输出
1> 没见过
2> 重定向 标准错误输出

linux 重定向中的 &> 和 >的作用?
linux重定向中&>和>&是一个意思,是“复制一个文件描述符”的意思。一、linux重定向的设备代码 标准输入(stdin) 代码为 0 ,实际映射关系:\/dev\/stdin -> \/proc\/self\/fd\/0 标准输出(stdout)代码为 1 , 实际映射关系:\/dev\/stdout -> \/proc\/self\/fd\/1 标准错误输出(stderr)代码为 2 ,实...

liunx中“ >”与“ &>”有什么区别?
>>和>都属于输出重定向,<属于输入重定向。2、文件内容的区别:>会覆盖目标的原有内容。当文件存在时会先删除原文件,再重新创建文件,然后把内容写入该文件;否则直接创建文件。>>会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建文件。输出重定向:...

linux的shell编程处处定向里的 &> 和 2> 是什么意思?
2>代表标准错误重定向

linux中&>什么意思?
1. > 重定向输出符号。2. >>重定向输出符号,但有追加的功能。3. 2>错误重定向输出符号,覆盖原文件内容。4. 2>>错误重定向输出符号,有文件内容追加的功能。重定向:I\/O。Linux Shell 环境中支持输入输出重定向,用符号<和>来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,...

linux shell 中&>是什么意思
& 后台执行 > 输出到 不过联合使用也有其他意思,比如nohup输出重定向上的应用 例子:nohup abc.sh > nohup.log 2>&1 & 其中2>&1 指将STDERR重定向到前面标准输出定向到的同名文件中,即&1就是nohup.log

linux里的 > 是什么意思
又可以当作网络防火墙是Linux的 一大亮点。Linux与其他操作系统相比 ,具有开放源码、没有版权、技术社区用户多等特点 ,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈 ,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。

Linux重定向
输出重定向 :我们使用 > 或者 >> 对输出进行重定向。 符号的左边表示文件描述符,如果没有的话表示1,也就是标准输出, 符号的右边可以是一个文件,也可以是一个输出设备(Linux中万物皆文件,即设备也是文件)。当使用>时,会判断右边的文件存不存在,如果存在的话就先删除,然后创建一个新的文件...

linux 命令中 > >>的区别?
>与>>都用来重定向输出,不同的是>将覆盖原有内容,而>>则会追加内容。例如:ls -l \/ > 123.txt 将会列出\/目录下的所有文件(目录)并将输出结果保存至123.txt中,如果123.txt里有内容456,那么这个456将会被覆盖掉,而如果使用>>则这个456还会存在,命令的输出结果保存至新的一行。如果还是有...

Linux重定向中 >&2 怎么理解?
>&2 即 1>&2 也就是把结果输出到和标准错误一样;之前如果有定义标准错误重定向到某log文件,那么标准输出也重定向到这个log文件 如:ls 2>a1 >&2 (等同 ls >a1 2>&1)把标准输出和标准错误都重定向到a1,终端上看不到任何信息。

linux命令行 > 什么意思
这个是数据流重定向操作的符号,就是将命令行屏幕上的标准输出或标准错误输出数据传送到一个文件或设备中,。通俗点来说就是,执行一个命令,本应该显示在屏幕上的结果,重定向到文件或设备。例如:ls \/etc > mydata 记住:>(一个大于符号)表示以覆盖的方式重定向数据,意思就是如果大于号后面跟的...

相似回答