我正在运行一个写入文件的 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
)此外,某些文件编辑器/查看器会在打开文件的整个期间锁定文件。
总之,可能存在的问题取决于您用于查看文件的程序。并且可能存在由写入文件的脚本的实现(或底层框架)引起的问题。