cpとエイリアス

cpでディレクトリを丸ごとコピーしたいときは、

$ cp -rf hoge1 hoge2/

ってやれば、hoge2ディレクトリの配下にhoge1ディレクトリが再帰的かつ確認メッセージなしでコピーされる。
・・・のはずだけど、rootでこれを実行すると、大抵上書き確認メッセージが表示される。
-f指定してるのになんでやねん!って思って、
ちょっと調べたらどうやらエイリアス指定が関係している模様。

# alias cp
alias cp='cp -i'

って表示されたら、エイリアスでご丁寧に-iオプションを有効化してくれてますので、-fが無効化されます。
さすがroot様はセキュリティが厳重だぜ!
ウザいけどな!
で、解決策は、

1. 現在のログイン中に限り、cpのエイリアスを解除する
   $ unalias cp
これで、ログイン中のcpのエイリアスが解除されます(再ログインしたら、元に戻る)
何回も実行するときはこっちが便利。
2. 実行時にエイリアスを無効にする
   $ cp -f ...
という具合にをつけると、コマンド実行時のみ無効になります。
限定的に使用する場合はこっちがいいね。
3. 永遠に無効化
   $ vi ~/.bashrc
でエイリアスの記述をコメントアウトしましょう。
こうすりゃ、再ログインしても、無効化されたまま。
ただし、現在のログインに反映するには、unalias実行しないとダメです。

かしこさが上がった気がします・・・。
参考記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です