我正在尝试使用cp命令并强制覆盖。
我尝试过cp-rf/foo/*/bar,但仍然会提示我确认每个覆盖。
我正在尝试使用cp命令并强制覆盖。
我尝试过cp-rf/foo/*/bar,但仍然会提示我确认每个覆盖。
当前回答
-n是“不覆盖”,但他的问题与你回答的完全相反。
为了避免这种确认,您可以简单地使用绝对路径运行cp命令,它将避免别名。
/bin/cp源文件目标
其他回答
我找到了这个
'cp' -rf * /data/danalonso_testing/target/
资料来源:https://superuser.com/questions/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
另一种不使用别名调用命令的方法是使用bash中内置的命令。
命令cp-rf/zzz/zzz/*
这可能是由于cp已经别名为类似cp-i的内容所致。直接调用cp应该可以:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
另一种解决方法是使用yes命令:
yes | cp -rf /zzz/zzz/* /xxx/xxx
所以我经常遇到这种情况,因为我将cp别名改为cp-iv,我发现了一个很好的技巧。事实证明,尽管-i和-n都取消了以前的覆盖指令,但-f没有。然而,如果您使用-nf,它将增加清除-i的能力。因此:
cp -f /foo/* /bar <-- Prompt
cp -nf /foo/* /bar <-- No Prompt
很整洁啊/尸体解剖所
我只是使用unalias删除“cp-I”别名,然后进行复制,然后设置回别名。:
unalias cp
cp -f foo foo.copy
alias cp="cp -i"
不是最漂亮的代码,但易于设置和高效。我还检查了别名是否已经用简单的
alias |grep cp