Linux 文件与目录管理

《Linux 文件与目录管理》

📁 学习目标

  1. 掌握 Linux 中文件和目录的创建、复制、移动、重命名、删除等基本操作。
  2. 理解 touchmkdircpmvrm 等常用命令的使用方法与注意事项。
  3. 能在阿里云 Ubuntu ECS 上进行实际文件操作,用于部署应用、备份数据、清理冗余文件等场景。
  4. 学会使用通配符和递归操作提高效率。

🧠 核心重点(表格提炼)

命令 功能 常用选项
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

📌 建议:

  • 对关键配置文件进行版本控制或定期备份。
  • 使用 rsynctar 进行整目录备份也很实用。

🧰 小贴士(建议收藏)🔖

技巧 说明
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 日志分析与排错技巧》🔍

请告诉我你想深入的方向吧!🚀

posted @ 2023-03-28 21:35  红尘过客2022  阅读(72)  评论(0)    收藏  举报