具体来说,我使用>>
和tee
在自定义别名中的组合将新的 Homebrew 更新存储在文本文件中,以及屏幕上的输出:
alias bu="echo `date "+%Y-%m-%d at %H:%M"` \
>> ~/Documents/Homebrew\ Updates.txt && \
brew update | tee -a ~/Documents/Homebrew\ Updates.txt"
问题:如果我希望将此输出添加到我的文本文件中,即放置在文件的开头而不是将其附加到末尾,该怎么办?
Edit1:正如有人在下面的答案中报告的那样,使用临时文件可能是一个好方法,这至少部分帮助了我:
targetLog="~/Documents/Homebrew\ Updates.txt"
alias bu="(brew update | cat - $targetLog \
> /tmp/out1 && mv /tmp/out1 $targetLog \
&& echo `date "+%Y-%m-%d at %H:%M":%S` | \
cat - $targetLog > /tmp/out2 \
&& mv /tmp/out2 $targetLog)"
但问题是到 STDOUT 的输出(以前由 tee 实现),我不确定是否可以将其合并到这种临时文件方法中……?