最新活动 年终钜惠

产品

硅云帮助文档中心

搜索文档

热门搜索词:

Linux 复制文件命令

更新时间:2026-02-06 11:11  版本:v1.4
分享到:
我要反馈 
收藏 我的收藏

Linux(Debian/ubuntu/centos等)系统如何复制文件呢?


将 /abc 目录 完整复制到 /www 目录(即将/abc目录下的所有子孙级文件夹和文件全部复制到/www目录里)

1、当目标目录(/www目录)不存在时

# 方法1:当/www目录不存在时,可以执行以下命令

cp -a /abc /www

其中-a表示保留复制后的目录和文件的属性和原来的一致。


# 方法2:本方法的效果与方法1是一样的(注意/abc后的/),当/www目录不存在时,以下命令明确表示拷贝abc下的所有内容到/www

cp -a /abc/ /www


参数说明:

  • -a:归档模式,保留所有属性(同cp -a);

  • -v:详细输出拷贝过程;

  • -f:force,强制覆盖目标文件 / 目录,忽略-i的交互式确认,直接覆盖;


2、当目标目录(/www目录)已经存在时

如果/www已存在,直接执行上述命令会在/www下创建子目录/www/abc(不符合需求),因此需要先清理原有/www,再拷贝:


 步骤 1:删除已存在的/www(谨慎操作!确保/www内的内容可删除)

 步骤2:继续执行1中的命令

3、进阶(高级)方法

rsync比cp更适合复杂场景(如跨服务器拷贝、增量更新),命令如下:

# 基本用法:将/abc的内容同步到/www(/www不存在则自动创建)

rsync -avz /abc/ /www/


# 若需要删除/www中原有、但/abc中没有的文件(完全覆盖),添加--delete参数

rsync -avz --delete /abc/ /www/


参数说明:

  • -a:归档模式,保留所有属性(同cp -a);

  • -v:详细输出拷贝过程;

  • -z:传输时压缩数据(本地拷贝可省略,跨服务器拷贝推荐加);

  • --delete:删除目标目录中源目录没有的文件(实现完全覆盖)。

强制覆盖

# 如果需要覆盖的文件很多,想要无需手动一个个输入y确认,添加-f参数

cp -avf --delete /abc/ /www/

以上命令可能仍会询问是否覆盖同名文件,这通常是系统是否给 cp 设置了默认别名,输入命令alias cp如显示cp -i则说明猜想正确,此时我们可以换用 /bin/cp命令来绕过别名
/bin/cp -avf --delete /abc/ /www/


注意:建议执行以上命令前,先用其他无用的目录做一次效果验证,尤其是需要删除、覆盖文件前做一次简单的验证,以防命令输错导致文件被删除、覆盖。

您对该文档有什么建议?

您对该文档的评分:

本文导航

1、当目标目录(/www目录)不存在时

2、当目标目录(/www目录)已经存在时

3、进阶(高级)方法

强制覆盖

搜索文档