cp
コマンドを使用して強制的に上書きしようとしています。
を試しましたがcp -rf /foo/* /bar
、各上書きを確認するように求められます。
cp
コマンドを使用して強制的に上書きしようとしています。
を試しましたがcp -rf /foo/* /bar
、各上書きを確認するように求められます。
回答:
あなたが行うことができますyes | cp -rf xxx yyy
が、私のgutfeelingは、rootとしてそれを行う場合と言う-あなた.bashrc
や.profile
の別名があるcp
のをcp -i
、最も近代的なシステム(主にRH-誘導体)は、ルートプロファイルにそれを行います。
alias
コマンドプロンプトで実行して既存のエイリアスを確認するかwhich cp
、のエイリアスのみを確認できますcp
。
エイリアスを定義している場合は、実行unalias cp
すると現在のセッションのエイリアスが廃止されます。それ以外の場合は、エイリアスをシェルプロファイルから削除できます。
あなたは一時的にエイリアスバイパスして、それを付けることによって、コマンドの非エイリアスのバージョンを使用することができ\
、例えば\cp whatever
¯\_(ツ)_/¯
それについてです。
(primarily RH-derivatives)
:)
unalias cp
コピーする必要のあるものをすべてコピーした後、を実行してエイリアスをデフォルトに戻すことができますalias cp='cp -i'
。その後、実行して、alias cp
デフォルトのエイリアスに戻っていることを確認できるようにします。
これはおそらくcp
、のような別名が既に付けられていることが原因cp -i
です。cp
直接呼び出すことはうまくいくはずです:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
これを回避する別の方法は、yes
次のコマンドを使用することです。
yes | cp -rf /zzz/zzz/* /xxx/xxx
yes
コマンドを提供するのが大好きです。陽気な、こっけいな。そしていつか私はそれを使うかもしれません。
他のいくつかの回答が述べているように、おそらくどこかにマップするエイリアスまたはそれに類似cp
したエイリアスを使用しますcp -i
。コマンドの前にバックスラッシュを付けることで、エイリアスなしでコマンドを実行できます。あなたの場合、試してください
\cp -r /zzz/zzz/* /xxx/xxx
バックスラッシュは、呼び出したエイリアスを一時的に無効にしますcp
。
cp
、\cp
コマンドを起動しますcp
。これはを実行するのと同じように見えますcommand cp
。
おそらくどこかにエイリアスがあり、にマッピングさcp
れていcp -i
ます。デフォルト設定でcp
は、上書きを求めないためです。あなた.bashrc
、あなたの.profile
等を確認してください
cpのマンページを参照してください。-i
パラメーターが指定されている場合のみ、cp
実際に上書きする前にプロンプトが表示されます。
alias
次のコマンドで確認できます。
$ alias
alias cp='cp -i'
alias diff='diff -u'
....
エイリアスの定義を解除するには、次を使用します。
$ unalias cp
デフォルトでcp
はにエイリアスがありcp -i
ます。あなたはそれをチェックして入力alias
することができ、あなたはいくつかのようなものを見ることができます:
alias cp='cp -i'
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'
この問題を解決するには、/bin/cp /from /to
代わりにコマンドを使用してくださいcp /from /to
cp
通常、このようにエイリアスされます
alias cp='cp -i' # i.e. ask questions of overwriting
上書きしたい場合は、これを使用してください。
/bin/cp <arguments here> src dest
私はこれを見つけました
'cp' -rf * /data/danalonso_testing/target/
出典:https : //superuser.com/questions/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
cpのエイリアスをにしておいたので、これに何度も遭遇しcp -iv
、きちんとしたトリックを見つけました。それはしばらくことが判明した-i
と-n
、両方が前の上書きディレクティブをキャンセル-f
しません。ただし、これを使用する-nf
と、をクリアする機能が追加されます-i
。そう:
cp -f /foo/* /bar <-- Prompt
cp -nf /foo/* /bar <-- No Prompt
かなりきちんとね?/ necropost
cp -u ...
cp --update ...
も動作します。
エイリアスなしでコマンドを呼び出す別の方法はcommand
、bash の組み込みを使用することです。
command cp -rf /zzz/zzz/*
-nは「上書きしない」ですが、彼の質問はあなたが答えたものとは正反対です。
この確認を回避するには、絶対パスを指定してcpコマンドを実行するだけでよく、エイリアスは回避されます。
/ bin / cpソースファイルの宛先
エイリアスをそのままグローバルレベルで保持し、スクリプトを変更したい場合。
ただ使用する:
エイリアスcp = cp
その後、フォローアップコマンドを記述します。