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」はエイリアスの設定がないので大丈夫。