Tarは読み取り専用ファイルを上書きします。

Tarは読み取り専用ファイルを上書きします。

私はディレクトリを作成し、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がファイルの既存のコピーも削除することです。

おすすめ記事