Linux 每日一令】Ep.6:cp —— 瞬间移动的“镜像术” 👯

这是本系列中关于“复刻”的一期。

在 Windows 或 Mac 上,你通常使用 Ctrl+CCtrl+V。在 Linux 终端里,我们用 cp 来创造平行宇宙。

一旦使用 cp,你可以保留原始文件的同时,在另一个地方生成它的完美替身。🧐


🧐 它是做什么的?

cpCopy(复制)的缩写。

🚀 基础用法

复制一个普通文件并重命名:

bash

cp source.txt backup.txt

请谨慎使用此类代码。

源文件不动,生成一个内容完全一样的 backup.txt。💾

⚠️ 常见报错与解决方案

如果你试图复制一个文件夹(比如 my_project):

bash

cp my_project my_project_bak

请谨慎使用此类代码。

报错:-r not specified; omitting directory 'my_project'(未指定 -r,略过目录)。

rm 一样,Linux 默认不处理目录。你需要开启“递归模式”。🛠️

🛠️ 必知参数(实用等级:极高)

1. -r (Recursive) —— 递归复制 🔄

复制文件夹及其内部所有的子文件、子目录:

bash

cp -r my_project/ /home/backup/

请谨慎使用此类代码。

2. -a (Archive) —— 归档模式 📦

这是比 -r 更强大的参数。它不仅递归复制,还会保留文件的所有属性(如创建时间、读写权限、所有者)。在备份系统配置时,这是首选:

bash

cp -a /etc/config_folder/ ./backup/

请谨慎使用此类代码。

3. -v (Verbose) —— 可视化执行 👀

如果你在复制大量文件,加上 -v,它会告诉你现在正在复制哪一个,不至于让你对着空白屏幕发呆。

💣 常用骚操作:大括号备份

想给文件快速加个后缀备份?不需要打两次文件名:

bash

cp config.php{,.bak}

请谨慎使用此类代码。

这行命令等同于 cp config.php config.php.bak

🛡️ 保命技巧:-i 🛡️

如果目标位置已经有一个同名文件,cp 默认会直接覆盖它。加上 -i (Interactive):

bash

cp -i info.txt ./target_folder/

请谨慎使用此类代码。

系统会问你:overwrite 'info.txt'? 你需要输入 y (Yes) 才会执行覆盖。

📝 总结 📋

  • cp 文件 目标:复制文件。

  • cp -r 目录 目标:复制文件夹。

  • cp -a 目录 目标:完美复刻(保留权限和属性)。

重要提示:习惯在覆盖前检查目标文件,防止“新版本”被“旧版本”覆盖! 🛑


下集预告:
Ep.7:mv —— 乾坤大挪移与“改名部” 🚚


Linux 每日一令】Ep.6:cp —— 瞬间移动的“镜像术” 👯
https://lg.409601.xyz//archives/linux-mei-ri-yi-ling-ep.6-cp------shun-jian-yi-dong-de-jing-xiang-shu
作者
Administrator
发布于
2024年12月22日
许可协议