【发布时间】:2020-04-07 11:24:53
【问题描述】:
我需要在 Linux 上使用进程中的线程中的tar 压缩文件。该文件每秒更新一次。
我正在运行以下命令从单独的进程中执行此操作。
tar -cvzf /destination/compressed_files.tar.gz /directory/to/archive
效果很好。未发现任何问题。但是,我有以下问题。
主要问题:
我试图让我的代码更安全、更可靠。 “从 tar 命令的角度来看”,上述方式是否安全。 tar 是否隐含地处理文件正在更新并压缩任何可能的事实? tar 会在内部复制内容吗?
次要问题:
我发现以下也是一种 tar 方法
tar -cvzf /destination/compressed_files.tar.gz -C /destination /directory/to/archive
看起来-C 选项更改了目录?在这里使用-C 更安全吗?
【问题讨论】:
-
当你说源文件被“更新”时,你的意思是它正在被追加,还是它的预先存在的内容被修改?
-
源内容仅附加了一些行。现有内容未修改。经过一些严格的测试,我现在看到 tar 给出了一条附加消息,指出“文件在我们阅读时已更改”。但这似乎只是一个警告,看起来
tar得到了它能够抓住的东西。我对 tar 工作原理的理解是否正确?