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