linux命令行 > 什么意思

linux命令行 > 什么意思,第1张

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

insmod sch_htb的标准输出(stdout)重定向追加到文件$log中,并将标准错误(stderr)重定向追加到$log

标准输出默认是终端

2是指标准错误,默认也是终端

log是变量,具体看前面的定义

>>是追加方式

>只是重定向,每次都会将原文件内容冲掉

一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符

文件描述符为0,小于号表示数据由文件流入命令

usage:

命令 <file

#加入输入重定向,对输入文件进行计数

wc -l </etc/passwd

文件描述符为1,大于号表述数据由命令流入文件

所以: echo "hello" >t.log 也可以写成 echo "hello" 1 >t.log

> 会把文件的内容清空,再输入到新的文件

>> 会把当前内容保持不变,然后在下一行进行追加

2> 错误重定向,如果当前命令产生了错误,会把错误重定向到文件中,而不会打印到屏幕

&> 无论内容正确还是错误都会把文件输出到文件中。

stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

默认情况下, command >file 将stdout 重定向到 file, command <file 将stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以这样写:

$ command 2>file

如果希望 stderr 追加到 file 文件末尾,可以这样写:

$ command 2>>file 2 表示标准错误文件(stderr)

如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:

$ command >file 2>&1 或者 $ command >>file 2>&1

如果希望对 stdin 和 stdout 都重定向,可以这样写:

$ command <file1 >file2

command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。

含义:将标准错误输出 重定向到 标准输出。

符号>&是一个整体,不可分开,分开后就不是上述含义了。

比如有些人可能会这么想:2是标准错误输入,1是标准输出,>是重定向符号,那么"将标准错误输出重定向到标准输出"是不是就应该写成"2>1"就行了?是这样吗? 如果是尝试过,你就知道2>1的写法其实是将标准错误输出重定向到名为"1"的文件里去了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8788557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存