私はディレクトリを作成し、test
その1.txt
中にファイルを作成し、test
そのファイルに「古い」を書きました。それから私は行きました
cd ..
次のコマンドを使用します。
tar -cvzf ./test.tgz ./test
その後、テストディレクトリに戻ります。1.txt
ファイルをもう一度開きます。内容を「以降」に変更します。ファイルを保存し、次を実行して読み取り専用にchmodedしました。
chmod -w ./1.txt
今私は1.txt
読み取り専用です。だから私は上がる
cd ..
test.tgz
アーカイブを抽出します。
tar -xvzf ./test.tgz
その後、もう一度テストディレクトリに移動して
cat 1.txt
「前」を入手してください。
ファイルが読み取り専用に設定されているため、これが発生するのは非論理的です。なぜこれが起こるのですか?
ベストアンサー1
Tarは既存の読み取り専用ファイルを上書きせずに削除し、同じ名前の新しいファイルを作成します。これは -x の仕組みの結果です。既存のアーカイブにファイルを追加する既存の増分バックアップ方法に対応するために、設計上の既存のファイルバージョンを置き換えます。 tar アーカイブには複数のバージョンのファイルを含めることができます。抽出が完了すると、最後のバージョンのみがディスクに表示されます。これの副作用は、ファイルがアーカイブに一度だけ表示されても、tarがファイルの既存のコピーも削除することです。