Linux 文件与目录管理
《Linux 文件与目录管理》
📁 学习目标
- 掌握 Linux 中文件和目录的创建、复制、移动、重命名、删除等基本操作。
- 理解
touch
、mkdir
、cp
、mv
、rm
等常用命令的使用方法与注意事项。 - 能在阿里云 Ubuntu ECS 上进行实际文件操作,用于部署应用、备份数据、清理冗余文件等场景。
- 学会使用通配符和递归操作提高效率。
🧠 核心重点(表格提炼)
命令 | 功能 | 常用选项 |
---|---|---|
touch |
创建空文件或更新时间戳 | -t 指定时间 |
mkdir |
创建目录 | -p 递归创建 |
cp |
复制文件或目录 | -r 递归复制;-i 提示覆盖 |
mv |
移动或重命名文件 | -i 提示覆盖 |
rm |
删除文件或目录 | -r 递归删除;-f 强制删除 |
ls |
列出目录内容 | -l 显示详细信息;-a 显示隐藏文件 |
find |
查找文件 | -name 按名查找;-type 按类型查找 |
🔍 详细讲解
1. 创建文件:touch
✨
touch
可以用来创建一个空文件,也可以修改已有文件的时间戳。
📄 示例:
touch file.txt
📌 注意:
- 如果文件已存在,不会改变内容,只会更新访问时间和修改时间。
- 可用于测试脚本中“标记”某个步骤是否执行。
2. 创建目录:mkdir
📂
mkdir
是“make directory”的缩写,用于创建新目录。
📄 示例:
mkdir mydir
✅ 递归创建多个层级目录:
mkdir -p project/src/main
📌 注意:
- 如果中间目录不存在,不加
-p
会报错。 - 阿里云服务器上可以用于组织项目结构、日志目录等。
3. 复制文件/目录:cp
📋
cp
用于复制文件或整个目录,是日常维护和部署中非常常用的命令。
📄 示例:
cp file.txt backup.txt
✅ 复制目录时需加上 -r
(递归):
cp -r mydir mydir_backup
✅ 加上 -i
提示是否覆盖:
cp -i file.txt /tmp/
📌 注意:
- 不建议直接使用
cp
覆盖重要配置文件,建议先备份。 - 在 ECS 上可用于复制网站模板、备份数据库文件等。
4. 移动或重命名文件:mv
🔄
mv
可以将文件从一个位置移动到另一个位置,也可以用于重命名文件。
📄 示例:
mv file.txt newfile.txt # 重命名
mv newfile.txt /tmp/ # 移动
mv mydir /home/ubuntu/ # 移动目录
✅ 同样可以结合 -i
避免误覆盖:
mv -i file.txt /tmp/
📌 注意:
mv
实际上是“剪切+粘贴”,不会占用额外磁盘空间。- 可用于整理服务器上的文件结构,比如迁移用户数据、日志目录等。
5. 删除文件/目录:rm
🗑️
rm
是删除文件或目录的命令,使用时要格外小心!
📄 示例:
rm file.txt
✅ 删除目录必须加上 -r
:
rm -r mydir
✅ 加上 -f
表示强制删除,不提示确认:
rm -rf mydir
⚠️ 警告:
rm -rf /
是绝对不能执行的命令! 它会删除整个系统文件,导致系统崩溃。- 在阿里云服务器上误删重要文件可能导致服务不可用,请谨慎操作。
6. 查看目录内容:ls
👀
ls
是最基础的查看文件列表命令,掌握它的各种参数对理解目录结构非常重要。
📄 示例:
ls # 简单列出当前目录下的文件名
ls -l # 显示详细信息(权限、所有者、大小、时间等)
ls -a # 显示隐藏文件(以 . 开头的文件)
ls -lh # 显示带单位的大小(如 K、M)
ls -lt # 按修改时间排序
📌 小技巧:
ls *.txt
可列出所有.txt
文件。ls [0-9]*
可列出以数字开头的文件。
7. 查找文件:find
🔍
find
是强大的搜索工具,可以根据名称、类型、大小、时间等多种条件查找文件。
✅ 按名称查找:
find /home/ubuntu -name "*.log"
✅ 按类型查找(如只查目录):
find /var/log -type d
✅ 按大小查找(如大于 1MB 的文件):
find /var -size +1M
✅ 执行命令(如删除匹配文件):
find /tmp -name "*.tmp" -exec rm {} \;
📌 注意:
find
命令性能较高,但遍历大目录时可能会较慢。- 在 ECS 上可用于清理旧日志、查找大文件释放磁盘空间等。
🧩 实战案例:ECS 上的文件管理实战 🛠️
场景一:部署网站时复制静态资源 🖥️
你正在部署一个静态网站,需要将本地 HTML 文件上传到 /var/www/html
:
scp index.html ubuntu@your_ecs_ip:/tmp/
ssh ubuntu@your_ecs_ip
sudo cp /tmp/index.html /var/www/html/
📌 注意:
- 确保 Nginx 或 Apache 已启动。
- 修改文件后记得重启 Web 服务。
场景二:定期清理临时文件 🧹
你在 /tmp
目录下生成了大量临时文件,想要每月自动清理一次:
sudo find /tmp -type f -mtime +7 -exec rm -f {} \;
📌 说明:
-mtime +7
表示修改时间超过 7 天的文件。- 可配合
cron
设置定时任务。
场景三:误删配置文件恢复 🚨
你不小心删除了 /etc/nginx/sites-available/default
,想恢复它:
sudo cp /etc/nginx/sites-available/default.bak /etc/nginx/sites-available/default
sudo systemctl restart nginx
📌 建议:
- 对关键配置文件进行版本控制或定期备份。
- 使用
rsync
或tar
进行整目录备份也很实用。
🧰 小贴士(建议收藏)🔖
技巧 | 说明 |
---|---|
ls -F |
自动在目录后面加 / ,便于区分 |
ls -S |
按文件大小排序 |
du -sh * |
快速查看当前目录下各文件/目录大小 |
tar -czvf archive.tar.gz dir/ |
打包并压缩目录 |
tar -xzvf archive.tar.gz |
解压 tar.gz 包 |
rsync -av src/ dest/ |
安全高效同步目录 |
alias ll='ls -l' |
自定义快捷命令 |
🎯 总结一句话:
“掌握 Linux 文件与目录管理,就像拥有了一把瑞士军刀🔪 —— 它能帮你高效地组织、复制、移动、清理服务器上的每一份数据。”
是否继续下一章?我将继续输出:
- 《Linux 用户与组管理详解》🔐
- 《Shell 命令进阶与自动化脚本》🖥️
- 《Linux 日志分析与排错技巧》🔍
请告诉我你想深入的方向吧!🚀