可能的重复:
如何使 iconv 用转换后的输出替换输入文件?
我正在编写一个脚本来更改文件的内容hosts
,但我陷入了head
输出重定向。
如果我这样做,head -n -1 hosts >hosts
我的hosts
文件将结果为空,是的,它有超过 1 行。
答案1
这是因为当您重定向到该文件时,您的 shell 会截断该文件。这发生在 head 有机会阅读之前。
您可以使用临时文件:
head -n1 hosts > hosts.tmp && mv hosts.tmp hosts
或者使用sponge
moreutils 包:
head -n1 hosts | sponge hosts