“>”和“>>”有什么区别?

Hel*_*eld 12 command-line

ls >和 和有ls >>什么区别?我需要为我的 GCSE 计算了解这一点,但不知道有什么区别。

Mar*_*ams 28

>&>>是重定向操作符;他们转移某些东西的输出,在这种情况下ls,是在别处。如果此输出转到文件,>将截断文件 - 即删除任何以前的内容,而>>将新数据附加到文件末尾,保留以前的内容。这适用于任何输入,因此echo& cat,例如,也可以这样使用。

同样令人感兴趣的是|运算符,它将数据传递给另一个应用程序 - 所以ls | cat -n会给你一个行号列表!

管道是相关术语。

  • 截断还是覆盖? (2认同)
  • @DKBose 来自`bash -c 'echo a > blah'` 的`strace` 输出:`open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)`,所以截断将是正确的术语。 (2认同)

Sud*_*eer 5

符号>>>用于将输出重定向到文件。

如果文件不存在,两者都会创建文件。如果文件已经存在,>则将覆盖该文件,>>并将数据附加到文件中。

所以ls > myfile将创建一个命名的文档,myfile如果它不存在。如果myfile已经存在并且包含一些数据,那么它将被您传递给它的新数据覆盖。

ls >> myfile如果不存在则创建一个文件并将数据写入其中。如果文件存在一些数据,则新数据会添加到其末尾。