ls >
和之间有什么区别ls >>
?我需要理解这一点才能通过 GCSE 计算,但不知道它们有什么区别。
答案1
>
&>>
是重定向运算符;它们将某些内容(在本例中为 )的输出转移到ls
其他地方。如果此输出转到文件,>
则会截断文件 - 即删除任何先前的内容,而>>
将新数据附加到文件末尾,保留先前的内容。这适用于任何输入,因此例如echo
&cat
也可以以这种方式使用。
同样令人感兴趣的是|
操作员,它将数据传递给另一个应用程序 - 因此ls | cat -n
会为您提供行号列表!
管道是相关术语。
答案2
符号>
和>>
用于将输出重定向到文件。
如果文件不存在,则两者都会创建文件。如果文件已经存在,>
则将覆盖文件,而 as>>
则会将数据附加到文件。
因此,如果不存在,ls > myfile
将创建一个名为的文档。如果已经存在并且包含一些数据,那么它将被您传递给它的新数据覆盖。myfile
myfile
而ls >> myfile
如果不存在则创建一个文件并向其中写入数据。如果文件存在且包含一些数据,则新数据将添加到其末尾。
答案3
如果使用单个 >,则它将覆盖已存在的文件。使用时请务必小心。
如果使用两个 >>,则如果文件已存在,则只会追加(换句话说,从文件底部开始写入)。否则,如果文件不存在,则会创建一个新文件。