私が書いたVimプラグインの何百行も失われ、tar
以前のバージョンを含むファイルを抽出したので、しばしばバックアップを続けています。プラグインの作成時に定期的に更新するため、ソース管理を無効にすることにしました。
tar
デフォルトでは、既存のファイルを上書きする前に尋ねないのはなぜですか?私たちは通常、速度と利便性よりもセキュリティが必要なので、ファイルを自動的に上書きするデフォルトの動作の背後にはいくつかの理由があると思います。例えば、私たちは一般的に;#ifdef NDEBUG
代わりに使用します#ifdef DEBUG
。同様に、ファイルを上書きする前に私に尋ねたいのですが、私に尋ねずにファイルを上書きするように指示するtar
ために使用できるいくつかのフラグがあります。また、tar
フラグを指定せずにデフォルトで要求するようにするにはどうすればよいですか?tar
これより安全な基本動作をサポートしている場合は、それ以外のツールを使用することもできます。
時間をいただきありがとうございます!
答え1
tar -k
このオプションは、ファイルがすでに存在することを確認するように要求します。TAR_OPTIONS
変数に追加(TAR_OPTIONS="$TAR_OPTIONS -k"
)するか、エイリアスを作成()してデフォルトで設定できますalias tar="tar -k"
。
答え2
rm
他の多くのユーティリティがこれをやっていないのと同じ理由cp
- 当初から、POSIXデザインの哲学は、コンソールの人々が自分がすることを知っていると仮定し、説明がない限り説明を要求しなかったことでした。 。実際の問題。
このような場合は、tar
マニュアルページを見て、フラグをTAR_OPTIONS
含めるようにenv変数を設定してみることができます--confirmation
。
答え3
要求されたものではありませんが、上書きするすべてのソースファイルのファイル名に--backup=simple
追加されるオプションを使用できます。~
@thinker25のアドバイスに従ってデフォルトを使用するとTAR_OPTIONS
効果alias
があります。
デモは次のとおりですtar --backup=simple
。
$ ls
hello.txt my.tar
$ tar --backup=simple --extract -f my.tar
$ ls
hello.txt hello.txt~ my.tar