Jak*_*kub 4 tar permissions files readonly
我创建的目录test
,创建的文件1.txt
中test
,该文件中写道:“前”。然后我去了
cd ..
Run Code Online (Sandbox Code Playgroud)
并使用命令:
tar -cvzf ./test.tgz ./test
Run Code Online (Sandbox Code Playgroud)
然后我再次进入测试目录。1.txt
再次打开文件。将内容更改为“之后”。我保存了文件并通过执行将 chmod 更改为只读:
chmod -w ./1.txt
Run Code Online (Sandbox Code Playgroud)
所以现在我1.txt
是只读的。然后我上去
cd ..
Run Code Online (Sandbox Code Playgroud)
并提取test.tgz
存档。
tar -xvzf ./test.tgz
Run Code Online (Sandbox Code Playgroud)
然后我再次去测试目录,做
cat 1.txt
Run Code Online (Sandbox Code Playgroud)
并获得“之前”。
发生这种情况是不合逻辑的,因为文件被设置为只读。为什么会发生?
Tar 没有覆盖现有的只读文件,而是将其删除,然后创建了一个同名的新文件。这是 -x 工作方式的结果;它通过设计替换文件的现有版本,以适应将文件附加到现有存档的旧增量备份方法。一个 tar 档案中可能有一个文件的多个版本;提取完成后,只有最后一个会出现在磁盘上。这样做的一个副作用是 tar 还会删除文件的现有副本,即使它们在存档中只出现一次。