Linux 使用 `cp` 命令导致挂载点被覆盖问题记录

Linux 使用 cp 命令导致挂载点被覆盖问题记录

我在linux上运行一个cp命令 cp -r /home/home_bk/* /home 此时为什么我找不到home_bk目录了? home_bk 目录是挂载在 /dev/sda1 上面 home 目录是挂载在 /dev/sdc1 上面

你现在的情况:

  • /home 已经挂载到 /dev/sdc1
  • /home/home_bk 挂载到 /dev/sda1

你执行了:

复制代码
cp -r /home/home_bk/* /home

结果:home_bk 消失了

为什么?
因为:

你把 /dev/sda1 里的所有内容,全部复制覆盖到了 /dev/sdc1 的 /home 目录下。

同时,原来的 /home/home_bk 这个「挂载点目录」被覆盖删除了!


核心原理(超级简单)

  1. /home 现在是 新分区 /dev/sdc1

  2. /home/home_bk旧分区 /dev/sda1 的挂载点

  3. 你执行 cp -r /home/home_bk/* /home

    → 把 sda1 里的所有文件

    全部拷贝到 sdc1 的 /home 下

  4. 拷贝过程中,原来的 /home/home_bk 目录被删掉 / 覆盖了

  5. 所以挂载点没了 → 看起来 home_bk 消失了


你的 home_bk 数据并没有丢!

/dev/sda1 里的数据完好无损!

只是 /home 下的挂载点目录 home_bk 被覆盖删除了


立刻恢复 home_bk(一步一步照做)

1. 重新创建挂载点目录
复制代码
mkdir -p /home/home_bk
2. 重新挂载 sda1 到 home_bk
复制代码
mount /dev/sda1 /home/home_bk
3. 查看是否恢复
复制代码
ls /home/home_bk

✅ 马上就能看到所有数据


以后绝对不能再这样复制!

错误命令(会删挂载点):

复制代码
cp -r /home/home_bk/* /home

正确复制(不破坏挂载点):

复制代码
cp -r /home/home_bk/. /home

或者

复制代码
rsync -av /home/home_bk/ /home/

最终总结(最关键)

  1. home_bk 数据没丢,都在 /dev/sda1 里
  2. 只是挂载点目录被 cp 命令覆盖删除了
  3. 重建目录 + 重新挂载 → 立刻恢复
相关推荐
似水এ᭄往昔2 小时前
【Linux】--进程概念
linux·运维·服务器
顶点多余2 小时前
线程互斥+线程同步+生产消费模型
java·linux·开发语言·c++
李彦亮老师(本人)2 小时前
Rocky Linux 9.x 安全加固实战指南:从系统初始化到生产级防护
linux·运维·安全·rocky
RisunJan2 小时前
Linux命令-mount(用于挂载Linux系统外的文件)
linux·运维·服务器
国冶机电安装2 小时前
其他弱电系统安装:从方案设计到落地施工的完整指南
大数据·运维·网络
蓝天守卫者联盟13 小时前
玩具喷涂废气治理厂家:行业现状、技术路径与选型指南
大数据·运维·人工智能·python
脆皮炸鸡7553 小时前
Linux开发工具~~~版本控制器Git以及调试工具GDB
linux·服务器·开发语言·经验分享·git·学习方法
hyunbar3 小时前
Docker命令及使用指南
运维·docker·容器