linux - 符号 -、< 和 > 是什么意思?

标签 linux bash unix pipe

我在一本书中读到这个例子:

 cp /bin/cat proj33
 echo -n x | ./proj33 - pipe33a > pipe33b &
./proj33 <pipe33b >pipe33a &

符号-是什么意思, ><意思是?

最佳答案

>是 I/O 重定向;它将命令的标准输出 ( ./proj33 ) 发送到文件 pipe33b .

< symbol 也是 I/O 重定向;它从文件 ./proj33 发送命令的标准输入(再次 pipe33b) .

-只是一个论点。它通常被命令视为读取标准输入而不是文件的指示。在这种情况下,很可能是 proj33通常需要一个文件作为它的第一个参数,但是当参数是 - 时它从管道中读取。 .有时,-用于指示标准输出。在极端情况下,您可以获得一个 -指示标准输入,一个指示单个命令的标准输出。使用 GNU tar , 你可以有 tar -c -f - -T -将输出写入标准输出 ( -f - ) 并从标准输入 ( -T - ) 读取要归档的文件列表。

如果您看到 -- ,那是非常不同的;它表示命令的“选项结束”;后面的任何内容都不是一个选项,即使它以破折号开头 - .

关于linux - 符号 -、< 和 > 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504954/

相关文章:

linux - Linux 中的恢复脚本

c++ - 在 OSX 上相当于 Windows 的 QueryPerformanceCounter 是什么?

linux - 如何让我自己创建的 shell 与 .sh 文件一起工作

linux - 删除与模式匹配的行

php - CakePHP 和 suphp 套接字,由对等方重置连接

linux - 在 linux 中运行另一种语言的程序

bash - 值对于 base 来说太大了(错误标记是 "08")

BASH - 在系统内部使用 awk 列

linux - Net-SNMP 在系统日志中显示错误版本?

c++ - 使用arm-none-linux-gnueabi-g++编译时不执行system()