web-dev-qa-db-ja.com

既存のファイルを上書きする前にtarが尋ねないのはなぜですか?

古いバージョンを含むtarファイルを抽出したため、作成したVimプラグインを数百行失い、頻繁にバックアップを続けました。プラグインを作成したときは、定期的にしか更新しないため、ソース管理を使用しないことにしました。

デフォルトで既存のファイルを上書きする前にtarが尋ねないのはなぜですか?通常、速度と利便性よりも安全性が必要なため、デフォルトの動作でファイルをサイレントに上書きする理由には、いくつかの理由があると思います。たとえば、通常は#ifdef NDEBUGではなく#ifdef DEBUGを使用します。同様に、tarはファイルを上書きする前に私に尋ね、私に尋ねることなくファイルを上書きするように指示するために使用できるフラグを持っていることを期待します。また、フラグを指定しなくても、デフォルトでtarが要求するようにするにはどうすればよいですか?このより安全なデフォルトの動作をサポートしている場合は、tar以外のツールを使用しても問題ありません。

お時間をいただきありがとうございます!

5
void-pointer

rmcp、および他の多くのユーティリティがそうではないのと同じ理由-早い段階から、POSIXの設計コンセプトは、コンソールの人が彼らが何を知っているかを常に想定することでした実際に問題がない限り、説明を求めないでください。

tarの場合、マニュアルページを見ると、TAR_OPTIONS環境変数を設定して--confirmationフラグを含めることができることがわかります。

10
Shadur

tar -kオプションは、ファイルがすでに存在するかどうかの確認を求めます。デフォルトでは、TAR_OPTIONS変数(TAR_OPTIONS="$TAR_OPTIONS -k")に追加するか、エイリアス(alias tar="tar -k")を作成することで設定できます。

8
thinker25