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

Non*_*one 21 linux bash filesystems command-line bash-scripting

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

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

Kam*_*ski 43

读取文件是安全的,尽管双击您提到的可能会在某些编辑器中打开文件,该编辑器将为您提供进行更改和保存的选项。错误点击发生,所以我推荐一些甚至不允许你更改文件的命令。

这些是在终端中工作的示例;他们只会读取文件:

cat file
less file
less +F file
tail -n 5 file
tail -f file
Run Code Online (Sandbox Code Playgroud)

  • @user1306322 仍然不能保证安全。之所以突出,是因为文件已打开以进行写入并不意味着它会不断被写入。如果编辑器运行时没有写入任何内容,它不会注意到。而且由于编辑器可能会写入一个新文件并在顶部重命名(因为重命名是原子的),因此正在写入的文件将被删除。从那时起写入的输出将转到已删除的文件。 (5认同)
  • 许多更智能的文件编辑器会警告您文件已更改并询问您是否要重新加载它,但愚蠢的编辑器可能不会。 (4认同)

Isk*_*tvo 13

只要你不写它,它应该没问题。

但是,我建议使用

tail -f log_file
Run Code Online (Sandbox Code Playgroud)

在另一个终端。

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