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. 重建目录 + 重新挂载 → 立刻恢复
相关推荐
xywww1681 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
梦想的颜色4 小时前
【Docker原理】Docker 容器一文打尽:生命周期、环境管控、迁移备份、日志进程排查、垃圾清理
运维·docker·容器·容器生命周期·容器日志排查·容器迁移备份·容器进程管理
欢呼的太阳5 小时前
数据库设计Step by Step (10)——范式化
服务器·数据库·oracle
夜雪一千6 小时前
Python enumerate() 函数完整详解:遍历同时获取索引,告别手动计数
服务器·windows·python
donoot6 小时前
Linux系统下图书馆级电子书全自动标准化分类整理完整实施方案
大数据·linux·运维·电子书管理
ITKEY_7 小时前
macOS brew 安装的nginx 文件在哪里?
运维·nginx·macos
Felix-lxd7 小时前
Ubuntu 22.04 配置 Nginx
linux·nginx·ubuntu
Elastic 中国社区官方博客7 小时前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
大E帝国子民18 小时前
MacOS 安装Seismic Unix
服务器·macos·unix
Tim_Van8 小时前
在 CentOS 7 中安装 Chromium 的完整步骤
linux·运维·chrome·centos