如何停止 cp: overwrite './xxx' ?迅速的

nel*_*aro 20 linux centos bash cp

如何阻止 cp 命令提示覆盖。我想覆盖所有文件而不必继续返回终端。由于这些文件很大,需要一些时间才能完成。

我尝试使用 -f 选项。它仍然询问我是否要覆盖。

   -f, --force
          if an existing destination file cannot be opened, remove it and
          try again (redundant if the -n option is used)

cp -f /media/somedir/somefiles* .  
cp: overwrite `./somefilesxxx'? y
Run Code Online (Sandbox Code Playgroud)

gle*_*man 17

除了调用/bin/cp,您还可以执行以下操作之一:

\cp -f ...
command cp -f ...
Run Code Online (Sandbox Code Playgroud)

但是,我同意您不应该习惯于使用别名cp -irm -i-- 如果您坐在不同的外壳上,您将不会拥有您所依赖的安全网。

  • `whereis cp` 将显示命令在哪里。因此,您将能够调用真正的命令而不是别名。 (2认同)

nel*_*aro 13

看到这个解决方案后。我可以看到 bashes 别名功能导致了问题。 http://systembash.com/content/prompt-to-confirm-copy-even-with-cp-f/

which cp  
alias cp='cp -i'
/bin/cp
which cp | grep cp
alias cp='cp -i'
/bin/cp
Run Code Online (Sandbox Code Playgroud)

他推荐

unalias cp
Run Code Online (Sandbox Code Playgroud)

我仍然想保留别名我只是不希望它应用于这个实例。我的解决方案是使用带有完整路径的二进制文件,以便 bashes 别名功能不会接管。这很好用。

/bin/cp -f /media/somedir/somefiles* .  
Run Code Online (Sandbox Code Playgroud)