web-dev-qa-db-ja.com

上書きを求められずにファイルをコピーまたは移動するにはどうすればよいですか?

私が試したこと:

root@Host [/home1]# cp -f hello /home3
cp: omitting directory `hello'
root@Host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C

上書きするかどうかは常に尋ねられます。 mvを使用しても機能しません。だから私は何をすべきですか?

私が試した他のこと:

root@Host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C
root@Host [/home1]# cp -force hello /home3
cp: invalid option -- 'o'
Try `cp --help' for more information.
root@Host [/home1]# cp --remove-destination hello /home4
cp: omitting directory `hello'
root@Host [/home1]# cp --remove-destination hello /home3
cp: omitting directory `hello'
root@Host [/home1]# cp --remove-destination -r hello /home3
cp: overwrite `/home3/hello/.buildpath'? ^C
root@Host [/home1]#
8
user4951

cpは、問題を引き起こしている何かにエイリアスされているか、関数のようです。エイリアス/関数を削除できます:

unalias cp
unset -f cp

今すぐオーバーライドするだけの場合は、commandコマンドを使用して、エイリアス/関数の定義をオーバーライドできます。

command cp [...]

これを完全に削除する場合は、おそらくbashスタートアップファイルを調べる必要があります。

13
Chris Down

確認せずに強制的に上書きするには、コマンドmvとオプション "-f"を使用する必要があります。オプションを表示するには、manを使用します。

man mv:

   -f, --force
          do not Prompt before overwriting

例:

mv -f test.tmp test.txt
7
sinkmanu

Cp -rv/sourcefileordirectory/Destinationfolderを試してください

1
Rockhound

おそらくcpのエイリアスがあります。このエイリアスを上書きするには、次のようにします。

\cp -f hello /home3

これは、この呼び出しのためだけに上書きされるため、エイリアスの設定を変更しないという利点があります。

1
niglesias

alias cp=cpそして、それはこのセッションで尋ねることなくターゲットを上書きします。標準の動作として保存したい場合は、~/.bashrc

0
user2516278