私の/home/user/.bashrcファイルには、エラーを防ぐために次のエイリアスがあります。
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
私がやっていることが確実であれば、エイリアスを使用または上書きすることができ、rm
ファイルmv
を本当に上書きするかどうか尋ねません。rm -f
mv -f
問題は命令が機能しないことですが、cp
使用中はcp -f
何度も質問が出ます。
これは普通ですか?デフォルトでは、エイリアスを使用し、コマンドもcp -i
使用できるようにするにはどうすればよいですか?cp -f
私はDebian Wheezy 64ビットを使用しています。
答え1
を与えることで、cp -f
そのオプションは既存のオプションに単に追加されます。
つまり、 があるとalias cp='cp -i'
コマンドの cp 単語が置き換えられ、 を得ることにcp -f
なりますcp -i -f file1 file2
。
エイリアスをオーバーライドするには:
\cp -f file1 file2
コマンドの前のバックスラッシュはエイリアシングを無効にします。読みやすくするcommand cp
ために代替を使用できます\cp
。
答え2
たとえ-f
それが意味するバイ力これらすべてについて、cp
これは次のことを意味します。ターゲットを更新できない場合は、まずターゲットを削除して強制してみてください。。
mv
との場合rm
を-f
上書きしてください-i
。しかし、その場合はcp
ユーティリティの動作を変更するものであり、-f
この場合にはその逆ではありません。-i
cp -i -f
これは意味があり、次のことを意味します。ユーザーにターゲットが存在するかどうかを尋ね、上書きできない場合は最初に削除してください。。
mv
との場合でも、rm
ユーザーに送信される警告とエラーメッセージの場合、追加するものと削除する-f
ことは異なります。-i
たとえば、エラーはrm non-existent-file
報告されますが、エラーrm -i -f non-existent-file
は報告されません。
-i
前述のように、エフェクトを削除するには、エイリアスを追加するのではなく、エイリアスを無効にするために提供されたソリューションを使用する必要があります。-f