本文共 1954 字,大约阅读时间需要 6 分钟。
标准输出命令字符 其实是 1> ,1可以省略
两个终端连接在一台主机上,终端分别为 1 2假设在/data下有文件F1.log 1:ls > 22:F1.log 主要是将内容重定向至文件中,如果没有文件,就生成,有就覆盖ls > /data/f1cat /data/f1F1.logls >> /data/f1 当不想覆盖文件时,再加一个 >cat /data/f1F1.logF1.logf1
set -C 禁止覆盖
| 加入| 符号,在set -C 下也可以强制覆盖set +C 覆盖2> 标准错误命 令字符
当错误信息使用了标准输出字符时,会清空文件内容[root@Centos7 ~]#cat /data/ls.outanaconda-ks.cfgDesktopDocumentsDownloadsf1linkf1link2fileinitial-setup-ks.cfgMusicPicturesPublicTemplatesVideos[root@Centos7 ~]#errcmd > /data/ls.outbash: errcmd: command not found...[root@Centos7 ~]#cat /data/ls.out 这一段为无内容下一段是标准错误的命令[root@Centos7 ~]#ls > ls.out[root@Centos7 ~]#cat ls.outanaconda-ks.cfgDesktopDocumentsDownloadsf1linkf1link2fileinitial-setup-ks.cfgls.outMusicPicturesPublicTemplatesVideos[root@Centos7 ~]#errcmd 2> ls.out[root@Centos7 ~]#cat ls.outbash: errcmd: command not found...同样,不想覆盖文件,多加一个> 即是 2>>可以同时执行两个命令
[root@Centos7 ~]#ls /etc/centos-release /etc/f1.out ls: cannot access /etc/f1.out: No such file or directory/etc/centos-release[root@Centos7 ~]#ls /etc/centos-release /etc/f1.out > /data/3.log 2> /data/4.log[root@Centos7 ~]#cat /data/3.log/etc/centos-release[root@Centos7 ~]#cat /data/4.logls: cannot access /etc/f1.out: No such file or directory将两个信息放在一个文件的两个写法
第一个写法更为方便,时间比较后出现,相对较新[root@Centos7 ~]#ls /etc/centos-release /etc/f1.out &> /data/all.log[root@Centos7 ~]#cat /data/all.log ls: cannot access /etc/f1.out: No such file or directory/etc/centos-release第二个是传统写法[root@Centos7 ~]#ls /etc/centos-release /etc/f1.out > /data/all2.log 2>&1[root@Centos7 ~]#cat /data/all2.log ls: cannot access /etc/f1.out: No such file or directory/etc/centos-releasetr 标准输入的一种
tr 可以做字符串转换的命令tr 'a-z' 'A-Z' 将输入的字母小写的输出为大写的< 标准输入的重定向
cat f1abcdtr 'a-z' 'A-Z' < f1 (即将f1的内容输入执行前面的tr命令ABCD (仅仅只是显示,可以加入 > 命令将显示内容放在文件tr 'a-z' 'A-Z' < f1 > f1 (这样会清空文件f1,应该将内容重定向至另一个文件中f2tr 'a-z' 'A-Z' < f1 > f2cat f2ABCD转载于:https://blog.51cto.com/14167037/2342058