我尝试过的:
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]#
答案1
对于不询问的情况下强制覆盖,您应该使用以下命令MV和选项“-f”,使用 man 查看选项。
男子MV:
-f, --force
do not prompt before overwriting
例子:
mv -f test.tmp test.txt
答案2
cp
似乎是导致问题的某个东西的别名,或者它是一个函数。您可以删除别名/函数:
unalias cp
unset -f cp
如果您现在只想覆盖它,您可以使用该command
命令覆盖任何别名/函数定义:
command cp [...]
如果您想完全删除它,您可能需要查看 bash 启动文件。
答案3
您可能有 cp 的别名。您可以通过执行以下操作来覆盖此别名:
\cp -f hello /home3
这样做的优点是不修改您的别名设置,因为它只是为了这次调用而覆盖它。
答案4
您可以使用yes
,它是专为此类事情设计的。它会自动打印y
并为您回答以下提示:
yes | cp -f hello /home3