Linux 文件与目录操作命令(通关版)

📖 知识点简介

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

⚠️ 常见坑点 / 注意事项

  1. rm -rf / 噩梦 :永远不要在生产环境直接执行此命令。建议养成习惯:先 lsrm,或使用 rm -i 别名。
  2. cp 时漏掉隐藏文件cp -r src/ dst/ 不会复制 . 开头的隐藏文件。正确做法:cp -r src/. dst/rsync -a src/ dst/
  3. 软链接删错源文件 :删除软链接本身要用 rm link_name,不要加末尾斜杠,否则可能误删源目录下的文件。
  4. ... 的特殊含义. 代表当前目录,.. 代表上级目录。编程时注意路径拼接别踩坑。
  5. find -exec 性能优化 :大量文件时 -exec {} +(合并执行)比 -exec {} ;(逐个执行)效率高数倍。
相关推荐
cjp5601 小时前
007. ASP.NET WEB API配置JWT令牌身份认证
后端·asp.net
程序员mine1 小时前
Web服务密码存储安全详解:从哈希到密钥派生的演进
前端·后端
weixin_307779131 小时前
从工具到协作者:AI在后端研发中的流程重构与组织赋能
人工智能·后端·python·算法·自动化
fliter2 小时前
Rust 如何用 Josh 管理跨仓库代码共享
后端
li-xun2 小时前
我给自己的 Django 博客做了一个在线工具箱:从图片压缩到正则测试,尽量都在浏览器本地处理
后端·python·django
码不停蹄的玄黓2 小时前
SpringBoot 实现拦截器
java·spring boot·后端
IT_陈寒2 小时前
Java的ArrayList扩容把我坑惨了,原来是这样搞的
前端·人工智能·后端
我登哥MVP3 小时前
SpringCloud 核心组件解析:服务调用和负载均衡
java·spring boot·后端·spring·spring cloud·java-ee·负载均衡