No.303
【CentOS】copyコマンドの上書き確認
forceオプションをつけても確認されちゃう…
 CentOS 6でcpコマンドを実行する際、確認をスキップするために-fオプションをつけて実行した。
cp -f hoge fuga
そしたら
cp: overwrite 'fuga' ?
と聞かれてしまった。
日本語環境だと
cp: 'fuga' を上書きしてもよろしいですか(yes/no)?
が出る。
 forceオプションつけてるのに何で?と思ったが、エイリアスが悪さしてた。
# alias
...
alias cp='cp -i'
...
 -iオプション。つまりinteractive指定されているので必ず確認が行われてしまうというわけだ。
解決方法①:yesコマンドを使う
 yesコマンドを使えば解決するけど、そもそも確認を求められている時点でスマートじゃない。あと、ディレクトリコピーとかだとものすごい量のテキストがコンソールに出力されてイライラする。
yes | cp -f a b
解決方法②:エイリアスを無効にする
 コマンドの先頭に\をつけるとエイリアスではなくコマンド本体を実行できる。これがスマートというか本来の姿。
\cp -f a b
OSバージョン
 この現象は「CentOS 5」と「CentOS 6」でのみ確認している。
 「CentOS 7」はエイリアスの設定がないので大丈夫。