Bash 中的文件重定向

Bash 中的文件重定向

使用 > 和 >> 有何区别?

如何在单个命令中同时使用 < 和 >(重定向运算符)?

答案1

>将数据从stdout(读取标准输出)重定向到文件。

ls -a > my-files.txt

将获取 的输出ls -a并将其放入名为my-files.txt删除/覆盖文件的文件中(如果存在)。在上面的示例中,使用>>而不是 不会覆盖文件(如果存在),但会将的输出添加到>ls -amy-files.txt

<另一方面,将数据发送到程序stdin(读取标准输入)。如果我有一个名为的文件my-files.txt,我想知道它包含多少个字,我可以将其发送到一个名为的程序wc。该程序接受其上的数据,stdin因此对于数据,我

wc -w < 我的文件.txt

最后,如果我想将该命令的输出保存到新文件,我可以像这样使用两者

wc -w < 我的文件.txt > wordcount.txt

答案2

尝试,
高级 Bash 脚本指南
深入探索 Shell 脚本艺术

  1. 特殊字符引用
  2. IO 重定向
  3. 变量和参数介绍

答案3

>>意味着只是如果不存在则追加/创建,对于日志非常有用。

<<也存在并且有用。尝试:

$ cat > a <<EOF
some text here
more text
EOF

$ cat a

您会看到该文件a包含两个之间的文本EOF

相关内容