将输出保存到多个文件中

将输出保存到多个文件中

我正在尝试将磁盘空间更新发送到多个文件,以便一个文件将具有当前更新,该更新将每小时被覆盖,而另一个文件可以拥有所有更新,每次运行时都会附加输出。但它仅在其附加的文件上添加输出,而不是在第一个文件(/tmp/daily..)

代码斜体

filename=$(date +"%d_$m-%H:%M")
df -kh  > /tmp/daily"$filename".txt >> /tmp/grand.txt

无论如何,我是否可以让第一个文件(/tmp/daily...)将被最新输出覆盖,而第二个文件(/tmp/grand.txt)将在执行时附加?

阿瑟

答案1

df -kh | tee -a /tmp/grand.txt > /tmp/daily"$filename".txt

要将相同的数据输出到多个位置,您必须复制该数据。这就是作用tee

在上面的管道中,tee获取 的输出df。然后,它将其附加到grand.txt文件中,并将数据的副本传递到其标准输出流。该输出流通过截断输出重定向重定向到每日文件。

或者,

df -kh | tee /tmp/daily"$filename".txt >> /tmp/grand.txt

相关内容