发布于2026-07-08 阅读(0)
扫一扫,手机访问
在 Linux 下干活,拷贝文件夹是个家常便饭。但你试过直接 cp 文件夹A 文件夹B 吗?系统大概率会甩你一句“略过了一个目录”,然后啥也不干。这时候,就得请出那个关键的 -r 参数了。

说白了,cp -r 是 Linux 里处理“整个目录搬家”的标准答案。理解它的关键在于吃透 -r 的脾气和它的使用边界。
-r 代表“递归(recursive)”。它的意思是告诉 cp:别管碰到的对象是个目录就退缩,给我钻进去,一层一层地把里面的东西(包括隐藏文件、符号链接、更深的子目录等等)全部复制出来。没有这个参数,cp 只认普通文件,看到目录直接拒绝。
格式很简单:cp -r [源目录] [目标位置]
cp -r 会自动以源目录的名字,在目标路径下创建新目录,然后把所有东西塞进去。cp -r 会把源目录整个作为子目录放进去,结果路径就是 目标/源目录名。举个例子:cp -r /home/user/project /backup/ 执行后,项目内容就在 /backup/project/ 里。
默认情况下,cp -r 只管复制内容,不保留原始的权限、所有者、时间戳这些元数据。如果想做个完美的镜像,必须加上 -p(preserve)选项:cp -rp。
-dpR,可以保留权限、所有权(前提是你有相应权限)、时间戳,以及符号链接本身(而不是它指向的那个文件)。cp -r 默认会把它变成独立的文件。如果你需要控制对符号链接的处理方式,可以加 -H 或 -L。-v 能实时看进度,加个 --no-clobber(或 -n)可以防止手滑覆盖已有的重要文件。如果你的需求更复杂——比如增量复制、排除某些文件、跨主机传输——那 rsync 是更灵活也更靠谱的选择。例如:rsync -a v --delete /source/ /dest/(注意末尾斜杠的含义,它决定了复制的是目录本身还是目录内容)。
话说回来,cp -r 胜在基础、轻量,不需要额外安装。本地快速整目录拷贝用它最顺手。但它不擅长处理冲突自动合并,也不适合网络传输。知道什么时候该用它,什么时候该换 rsync,这才是关键。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8