Shell:如何打开文件并删除其中的内容

Shell:如何打开文件并删除其中的内容,shell,Shell,我已经在我的服务器上安装了一个名为Fluentd的日志软件,它附带了一个conf文件/etc/td-agent/td-agent.conf。这个文件充满了句子和例子,这就是所谓的“标准配置”。我想制作一个shell脚本,删除文件中的所有内容,然后添加以下内容: { echo "include /home/adrian/app/config/fluentd/td-agent.conf" } >> /etc/td-agent/td-agent.conf 但是在添加这个之前,我需要

我已经在我的服务器上安装了一个名为Fluentd的日志软件,它附带了一个conf文件/etc/td-agent/td-agent.conf。这个文件充满了句子和例子,这就是所谓的“标准配置”。我想制作一个shell脚本,删除文件中的所有内容,然后添加以下内容:

{   echo "include /home/adrian/app/config/fluentd/td-agent.conf"  } >> /etc/td-agent/td-agent.conf
但是在添加这个之前,我需要删除文件的内容(而不是文件本身)。 我不知道如何打开/etc/td-agent/td-agent.conf并删除所有内容。在shell中如何实现这一点

最好的,阿德里安

我是centos的超级用户

echo "include /home/adrian/app/config/fluentd/td-agent.conf" > /etc/td-agent/td-agent.conf
请注意使用
>
而不是
>


注意使用
而不是

如果要保留现有代码,则从零重定向将截断文件

> /etc/td-agent/td-agent.conf

如果您想保留现有代码,则从零重定向将截断文件

> /etc/td-agent/td-agent.conf

只需使用>而不是>>只需使用>而不是>>你的意思是不是
cat/dev/null>/etc/td-agent/td-agent.conf
?使用您的命令,我的shell正在等待更多输入。@迈尔斯:您使用的哪个shell不理解空重定向?我使用的是zsh。我的shell是否应该假设从nothing重定向与从/dev/null重定向相同?@MilesYucht:Bash打开文件进行写入,在过程中截断它,然后立即关闭它,因为nothing运行。我认为zsh的做法有所不同。你完全正确;我以前从未注意到这一点。Zsh然后读取标准输入,因此
>myfile
后跟
CTRL-D
实现了完全相同的效果。你是说
cat/dev/null>/etc/td-agent/td-agent.conf
?使用您的命令,我的shell正在等待更多输入。@迈尔斯:您使用的哪个shell不理解空重定向?我使用的是zsh。我的shell是否应该假设从nothing重定向与从/dev/null重定向相同?@MilesYucht:Bash打开文件进行写入,在过程中截断它,然后立即关闭它,因为nothing运行。我认为zsh的做法有所不同。你完全正确;我以前从未注意到这一点。Zsh然后读取标准输入,因此
>myfile
后跟
CTRL-D
达到完全相同的效果。