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. 重建目录 + 重新挂载 → 立刻恢复
相关推荐
A小辣椒12 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒16 小时前
TShark:基础知识
linux
AlfredZhao18 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式