ABKYH 发表于 2019-2-17 10:53:58

Linux 重定向

  一、重定向符号:> >> 1> 1>> 2> 2>> < 与1>


# ls
anaconda-ks.cfginstall.log.syslog
# echo My name is NSW&gt;nsw.txt      
# cat nsw.txt
My name is NSW
  //新建nsw.txt,并将>左边的字符写入到文件中。目录下无文件,自动创建文件。

  1>

# echo My name is NSW 1>test.txt
# cat test.txt
My name is NSW
  //同理。

# cat nsw.txt
My name is NSW
# echo I love oldboy >nsw.txt
# cat nsw.txt
I love oldboy
  //可以看出>会将源文件的内容覆盖。(谨慎)

# echo Welcome 1>nsw.txt
# cat nsw.txt
Welcome
  //1>同样也会先覆盖原文件的内容。
  小结:重定向符>和1>都为输出重定向;
被输入的文件有则直接输入,无则自动创建该文件并输入;
将符号左边的字符串输入到右边文件中且覆盖原文件。
  2.追加输出重定向:>> 1>>

   # ls
anaconda-ks.cfginstall.log.syslognsw.txttest.txt
# cat nsw.txt
Welcome
# echo My name is nsw>>nsw.txt
# cat nsw.txt
Welcome
My name is nsw
  //可以看出确实在云文件最后面新追加了My name is nsw没有覆盖源文件。

   # echo My name is nsw1>>nsw.txt
# cat nsw.txt
Welcome
My name is nsw
My name is nsw1
  //这需要注意的是符号左面需要空一格要不系统会认为1是输入的字符。

   # echo My name is nsw 1>>nsw.txt
# cat nsw.txt
Welcome
My name is nsw
My name is nsw1
My name is nsw
  //同理1>>和>>作用相同。

   # ls
anaconda-ks.cfginstall.log.syslognsw.txttest.txt
# echo Hello >>hello.txt
# cat hello.txt
Hello
# cat HELLO.txt
HELLO
  小结:追加输出重定向>>和1>>,将内容追加到指定文件中最后一行的下一行,不会覆盖源文件;
指定目录下有源文件直接追加,没有则自定创建文件并追加内容。
  3.标准错误重定向2>

   # cat hello.txt
Hello
# eho test
-bash: eho: command not found
# eho test 2>hello.txt
# cat hello.txt
-bash: eho: command not found
  //将错误重定向到指定文件中并覆盖原文件内容。
  4.错误追加重定向2>>

    # cat test.txt
My name is NSW
# eho Hello 2>> test.txt
# cat test.txt
My name is NSW
-bash: eho: command not found
  //将错误追加到指定文件中。

# ls
anaconda-ks.cfginstall.log.syslog
# eho hello 2>test.txt
# cat test.txt
-bash: eho: command not found
#
#
# eho hello 2>>test.txt
# cat test.txt
-bash: eho: command not found
-bash: eho: command not found
  //无论2>还是2>>在目录下没有指定文件时都会自动创建文件。
  小结:标准错误输出重定向和错误追加重定向都是将执行错误的提示内容放入指定文件中,故障排查,区别在于一个是覆盖一个是追加。
  5.标准输入重定向:<

   # echo 1 2 3 4 5 6 >test.txt
# cat test.txt
1 2 3 4 5 6
# xargs -n2 test.txt
^C
# xargs -n2
页: [1]
查看完整版本: Linux 重定向