Shell 重定向 - 遵循名称,而不是描述符

Shell 重定向 - 遵循名称,而不是描述符

我有一个在后台运行的 shell 脚本,它唯一做的就是运行 1 个命令,其中的 STDOUT 被附加到一个文件中。

my_blocking_command >> my_file

我想阻止行数增长太多,所以我运行:

[ "$(cat my_file)" -ge 30 ] && tail -n20 my_file | sponge my_file

当文件被覆盖时,问题就会出现 - 文件描述符不再指向当前文件my_file-my_blocking_command写入的文件描述符不指向我想要的文件。

我如何确保命令输出的所有内容始终重定向到my_file,即使它被覆盖? (跟随名称,而不是文件描述符,例如tail --follow=name

或者也许有更好的方法来做到这一点?

相关内容