打开正在运行的脚本写入的文件是否安全?

打开正在运行的脚本写入的文件是否安全?

我正在运行一个写入文件的 shell 脚本。
此脚本可能需要很长时间才能完成,我想监视部分输出,而不是等待整个脚本完成。

打开(双击)脚本正在写入的文件是否安全?

答案1

读取文件是安全的,尽管双击您提到的文件可能会在某些编辑器中打开该文件,该编辑器会为您提供进行更改和保存的选项。误点击是常有的事,所以我建议使用甚至不允许您更改文件的命令。

这些是在终端中运行的示例;它们只会读取文件:

cat file
less file
less +F file
tail -n 5 file
tail -f file

答案2

只要您没有向其写入内容,就应该没问题。

不过我建议使用

tail -f log_file

在另一个终端。

此命令将“跟随”文件log_file,并在脚本更新文件后立即写入新添加的内容。

答案3

没有足够的代表来对 Kamil Maciorowski 的回答添加评论:

对于某些文件,您可能希望tail -F file以下内容继续循环。例如,查看系统日志。

答案4

如果脚本(或底层框架实现)在工作期间反复打开和关闭文件句柄,则可能会在后续的写模式打开中遇到共享冲突错误,原因如下:
1)脚本可能会以独占模式请求写访问权限(不包括并发读访问权限),因此如果您的文件编辑器/查看器程序甚至只读取文件,则可能会触发写脚本中的错误。2
)此外,某些文件编辑器/查看器会在打开文件的整个期间锁定文件。

总之,可能存在的问题取决于您用于查看文件的程序。并且可能存在由写入文件的脚本的实现(或底层框架)引起的问题。

相关内容