理家篇-Day9|复制家当:copy 复制 → cp 复制(含 cp -r 复制文件夹)

0 次阅读 2026-10-26 16:16

📖 知识点

1. Windows 的 copy → Linux 的 cp

 

 

 

WindowsLinux作用

copy 源 目标

cp 源 目标

复制文件
复制整个文件夹

cp -r 源文件夹 目标

复制文件夹(含里面所有)

cp = copy,复制。格式都是 cp 源文件 目标位置,把源复制一份到目标。

💡 生活比喻复制就像 "复印机":把一份文件复印一份,原件还在,多出一份副本。cp 笔记.txt 笔记副本.txt 就是复印了一份。

2. 复制文件

 

cp 源文件 目标文件     # 复制成另一个文件
cp 源文件 目标目录/    # 复制到某个目录(保留原文件名)

 

cp 笔记.txt 笔记备份.txt    # 复制并改名
cp 笔记.txt 文档/            # 复制到文档目录,名字不变

 

3. 复制文件夹:cp -r

复制文件夹必须加 -r(recursive,递归),把里面的所有东西一起复制:

 

cp -r 源文件夹 目标文件夹

 

cp -r 项目 项目备份    # 把整个"项目"文件夹复制成"项目备份"

 

不加 -r 复制文件夹会报错 "omitting directory"—— 它不会自动把文件夹里的东西一起搬。

4. 验证复制结果

 

cp 笔记.txt 笔记备份.txt
ls       # 看到原件和副本都在

 

⚠️ 易错提醒

  1. 复制文件夹必须加 -r,否则报错

  2. cp 默认覆盖同名目标文件(不会提示),小心别覆盖重要文件

  3. 复制后源文件还在,是 "复制" 不是 "移动"(移动用 mv,Day10)

⚔️ Kata 实战任务

任务需求:

  1. 回家并确保有 "项目 / 笔记.txt"(没有就 touch 建)

  2. 用 cp 把 "项目 / 笔记.txt" 复制成 "项目 / 笔记备份.txt"

  3. 用 cp 复制整个 "项目" 文件夹为 "项目备份"(用 -r)

  4. 用 ls 和 ls -l 项目 验证复制结果

  5. 确认原件和副本都在

参考代码(在终端依次敲)

 

# 回家,准备一个文件
cd ~
mkdir -p 项目
touch 项目/笔记.txt

# 1. 复制文件:笔记.txt → 笔记备份.txt
cp 项目/笔记.txt 项目/笔记备份.txt

# 2. 复制整个文件夹:项目 → 项目备份(必须 -r)
cp -r 项目 项目备份

# 3. 验证
ls
echo "---- 项目里的文件 ----"
ls 项目
echo "---- 项目备份里的文件 ----"
ls 项目备份

 

运行示例:

 

user@linux:~$ cp 项目/笔记.txt 项目/笔记备份.txt
user@linux:~$ cp -r 项目 项目备份
user@linux:~$ ls
Desktop  文档  图片  项目  项目备份
user@linux:~$ ls 项目
笔记.txt  笔记备份.txt
user@linux:~$ ls 项目备份
笔记.txt  笔记备份.txt

 

🧠 思考题

  1. cp 笔记.txt 笔记备份.txt 和 cp -r 项目 项目备份 的区别是什么?为什么复制文件夹必须加 -r?

  2. cp 是 "复制",复制之后源文件还在吗?和 Day10 要学的 "移动 mv" 有什么本质不同?