如何复制或移动文件而不被要求覆盖?

如何复制或移动文件而不被要求覆盖?

我尝试过的:

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

相关内容