📖 知识点简介
Linux 一切皆文件。文件与目录管理是运维工作的基本功------无论是部署服务、排查日志、配置权限,还是编写脚本,都离不开对文件和目录的精准操作。掌握这些命令,等于拿到了服务器的"通行证"。
🛠 核心命令整理
一、目录操作
| 命令 | 用途 | 常用参数 |
|---|---|---|
pwd |
显示当前工作目录 | --- |
ls |
列出目录内容 | -l 详情 · -a 显示隐藏 · -h 人性化大小 · -t 按时间排序 · -S 按大小排序 · -r 反向排序 |
cd |
切换目录 | cd .. 上级 · cd ~ 家目录 · cd - 上一个目录 |
mkdir |
创建目录 | -p 递归创建 · -v 显示创建过程 |
rmdir |
删除空目录 | -p 递归删除空父目录 |
二、文件操作
| 命令 | 用途 | 常用参数 |
|---|---|---|
touch |
创建空文件 / 更新时间戳 | --- |
cp |
复制文件或目录 | -r 递归 · -p 保留属性 · -a 归档(保留所有) · -u 仅更新 · -v 显示过程 |
mv |
移动 / 重命名 | -u 仅更新 · -v 显示过程 · -i 交互式(覆盖前询问) |
rm |
删除文件或目录 | -r 递归 · -f 强制 · -i 交互式 · -rf🙅 慎用! |
ln |
创建链接 | -s 软链接(符号链接) · 无参数为硬链接 |
file |
查看文件类型 | --- |
三、查找与定位
| 命令 | 用途 | 常用参数 |
|---|---|---|
find |
按条件查找文件 | -name 按名 · -type 按类型(f/d/l) · -size 按大小 · -mtime 按修改时间 · -exec 对结果执行命令 |
locate |
快速定位(依赖数据库) | -i 忽略大小写 · -c 显示匹配数 |
which |
查找可执行文件路径 | --- |
whereis |
查找程序二进制/源码/man页 | --- |
💻 实操示例
bash
# === 基础操作 ===
# 创建多级目录
mkdir -p /data/logs/nginx/$(date +%Y%m%d)
# 复制目录(保留属性)
cp -rp /etc/nginx/ /data/backup/nginx_$(date +%Y%m%d)
# 批量重命名(给所有 .txt 加 _backup 后缀)
for f in *.txt; do mv "$f" "${f%.txt}_backup.txt"; done
# 安全删除:先移动到回收站而非直接 rm
alias rm-safe='mv -t ~/.trash'
# 用法:rm-safe file1 file2
# === find 实战 ===
# 查找 7 天前修改的日志并打包
find /var/log -name "*.log" -mtime +7 -exec tar -rvf old_logs.tar {} ;
# 查找大于 100MB 的文件
find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null
# 查找空目录并删除
find . -type d -empty -delete
# === 链接 ==
# 给 Nginx 配置做软链接(方便版本切换)
ln -sf /etc/nginx/conf.d/prod.conf /etc/nginx/conf.d/active.conf
⚠️ 常见坑点 / 注意事项
rm -rf /噩梦 :永远不要在生产环境直接执行此命令。建议养成习惯:先ls再rm,或使用rm -i别名。cp时漏掉隐藏文件 :cp -r src/ dst/不会复制.开头的隐藏文件。正确做法:cp -r src/. dst/或rsync -a src/ dst/。- 软链接删错源文件 :删除软链接本身要用
rm link_name,不要加末尾斜杠,否则可能误删源目录下的文件。 .与..的特殊含义 :.代表当前目录,..代表上级目录。编程时注意路径拼接别踩坑。find -exec性能优化 :大量文件时-exec {} +(合并执行)比-exec {} ;(逐个执行)效率高数倍。