CentOSでcpコマンド上書き時に確認メッセージを非表示にする方法のイメージ画像

CentOSでcpコマンド上書き時に確認メッセージを非表示にする方法

  • 公開日:2018/10/22
  • 更新日:2018/10/22
  • 投稿者:n bit

CentOSでは[-f]オプションをつけても上書きの確認メッセージが表示されてしまいます。エイリアスで [-i] オプションをつけるよう設定されていることが原因のため簡易的にエイリアス設定を一時的に無効にして上書きメッセージを表示させない方法を紹介します。

  • サーバ

この記事は約 分で読めます。(文字)

CentOSでcpコマンド上書き時に確認メッセージを非表示にする方法

通常指定したファイルやディレクトリをコピーする『cpコマンド』では[-f]オプションをつけることで上書きの確認メッセージを求めません。しかしCentOSではエリアスの設定で[-i]オプションが指定されているため上書きのファイルがある場合[-f]オプションをつけていても確認メッセージが表示されてしまいます。

  • [-f]オプション:コピー先にコピー元と同じ名前のファイルがある場合確認せず上書き
  • [-i]オプション:コピー先にコピー元と同じ名前のファイルがある場合上書きの可否を確認するメッセージを表示

aliasコマンドを実行しエリアスの設定内容を確認してみましょう。

[root@xxx ~]# alias

alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

cpコマンドを実行したとき自動的に[-i]オプションが付与されて実行される設定になっているのがわかります。

alias cp='cp -i'

エイリアス設定を一時的に無効にする

[-f]オプションを付けても上書きメッセージが表示される原因はエイリアスの設定による上書きですのでcpコマンド実行時にエリア設定を一時的に無効にすればこの問題を回避できます。

エリアス設定を一時的に無効にするにはコマンドの先頭に『\(バックスラッシュ)』をつけましょう。

[root@xxx ~]# \cp -rf /home/xx/xxx_site/media /var/xxx_site/.

これで上書きの可否を求めるメッセージは表示されなくなります。

今日のdot

CentOSはエリアス設定で[-i]オプションが指定されているためcpコマンドの上書き可否メッセージを非表示にするには先頭に『\(バックスラッシュ)』をつけてコマンドを実行しましょう。

[root@xxx ~]# \cp -f コピー元 コピー先