Unix 什么';使用>;及>&燃气轮机;在贝壳里?

Unix 什么';使用>;及>&燃气轮机;在贝壳里?,unix,shell,Unix,Shell,我在shell中看到了可以使用>>的地方。 在shell中使用>和>>有什么区别?>用于附加,而用于写入(替换)。如果您重定向到的文件已经存在,则有区别: 截断(即替换)现有文件 >附加到现有文件。如果文件存在,>将附加到文件末尾,将覆盖它 两者都会以其他方式创建它。'>>'将允许您将数据附加到文件,其中'>'将覆盖它。例如: # cat test test file # echo test > test # cat test test # echo file >> test

我在shell中看到了可以使用>>的地方。
在shell中使用>和>>有什么区别?

>
用于附加,而
用于写入(替换)。

如果您重定向到的文件已经存在,则有区别:

截断(即替换)现有文件


>
附加到现有文件。

如果文件存在,
>
将附加到文件末尾,
将覆盖它


两者都会以其他方式创建它。

'>>'将允许您将数据附加到文件,其中'>'将覆盖它。例如:

# cat test
test file
# echo test > test
# cat test
test
# echo file >> test
# cat test
test
file
使用>,如中所示:

$echo“这是一个测试”>output.txt

>操作符将完全覆盖文件output.txt(如果存在)的任何内容。如果该文件不存在,则将使用“这是一个测试”内容创建该文件

此用法:

$echo“这是一个测试”>>output.txt


将向output.txt中的任何内容(称为“追加”)添加链接“这是一个测试”。如果文件不存在,将创建该文件,并添加文本。

在此处添加更多知识

我们还可以使用
tee
命令执行相同的操作:

cat newfile | tee filename - rewrites/replaces the file with new content in filename
cat newfile | tee -a filename - appends to the existing content of the file in filename file

>>的一个例子是什么?是的,使用>时要小心,因为如果文件已经存在,它只会完全覆盖该文件,而>>将创建一个新文件(如果不存在),或者开始附加到现有文件的末尾。@goe:您将使用
>
在文件末尾添加新行。例如,log file.echo“more text”>>somefile.txt+1。是的,并且冒着过度澄清的风险,
将覆盖(删除)文件中当前的任何内容。