如何使用echo覆盖文件?


10

如果使用echo "foo">> bar.txt不止一次,它将附加到文件末尾。bar.txt每次如何覆盖?


2
丹尼斯的答案是正确的。查看man bash和搜索(使用/)有关“重定向”的部分。特别是“重定向输出”和“附加重定向输出”小节。
RedGrittyBrick 2012年

Answers:


28

>用于重定向到文件(覆盖文件),而>>用于追加。

要覆盖bar.txt,请使用以下命令:

echo "foo" > bar.txt

1
更常见的是,>被称为重定向(标准输出到文件),而管道符号 |被称为管道(标准输出到另一个过程)。当您被>称为“管道” 时,您冒着混淆像我这样的人的风险
RedGrittyBrick 2012年

@RedGrittyBrick:我见过管道的几本书(我已经说了好几年),但转向似乎更为常见。谢谢。
丹尼斯

@Dennis Piping正在使用管道|将一个程序/命令的输出连接到另一个程序/命令的输入。相关的
丹尼尔·贝克

@DanielBeck:我的意思是说我看到了到文件的管道。示例:在一个月的午餐中学习Windows PowerShell-管道传输到文件或打印机
Dennis

请注意,根据第43页,PowerShell > foo只是的语法糖| Out-File foo,因此是管道的一种形式;-)
Daniel Beck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.