cp/mv 命令

总是忘记,每次使用这些命令时都不敢确定,稍做记录:

目的目录要不要存在

cp(mv) src dir/dest

总结:

若 dest 目录存在,则会将 src 放在 dest 目录下:dir/dest/src

若 dest 目录不存在,则会将 src 放到 dir 目录下,并重命名为 dest:dir/dest

若 dest 存在,且和 src 一个是目录 一个是文件,则报错

源地址要不要加反斜杠

cp(mv) src/ dest
cp(mv) src dest

这俩有区别吗?有,在不同的系统上表现还不一样。在FreeBSD中,前者是将 src 目录下的内容拷贝到 dest,后者是将整个 src 目录拷贝过去。而在CentOS7中,两者都是将整个 src 拷过去。

故,若想拷贝目录下的内容,应该统一用 cp src/* dest ,而拷贝目录则用 cp src dest

参考:https://blog.csdn.net/weixin_30212009/article/details/116683175

cp 覆盖

使用 cp -rf 可以递归覆盖内容,否则它就会每次遇到相同的文件都会询问

若 -f 命令不起作用,则考虑是否给 cp 设置了别名,导致执行 cp 时默认执行的是 cp -i,这种情况下则可以在cp命令前加一个反斜杠解决(反斜杠的作用就是调用别名的原始命令):

\cp -rf xxx xxx
# 或直接使用原生命令
/bin/cp -rf xxx xxx

参考:https://blog.csdn.net/xuehuagongzi000/article/details/88657089

Leave a Comment