文件与目录管理是Linux运维、开发的基础核心技能,所有日常操作、服务器维护都离不开它。今天精简梳理Linux目录切换、文件增删改查、文件查看、权限机制、文件查找等核心知识点,全是实操干货,新手可直接收藏复用。
一、目录基础操作命令(增删切换)
主要用于目录跳转、创建、删除、路径查看,是Linux最基础的高频命令。
cd(切换目录)
📌 常用实操:
cd /home # 绝对路径,进入home目录
cd ./test # 相对路径,进入当前目录下的test文件夹
cd .. # 返回上一级目录
cd ~ # 回到当前用户家目录
cd - # 返回上一次所在目录
pwd(查看当前目录)
📌 常用实操:pwd
💡 作用:直接输出当前目录完整绝对路径,排查路径错误必备
mkdir(创建目录)
📌 常用实操:
mkdir test # 创建单层目录
mkdir -p a/b/c # 递归创建多层目录(-p 核心参数,无报错、可嵌套)
mkdir test1 test2 # 批量创建多个目录
rmdir(删除空目录)
📌 常用实操:
rmdir test ⚠️ 注意:仅可删除空目录,目录内有文件/子目录直接报错
二、文件与目录通用操作(增删改查)
覆盖文件/目录的复制、移动、删除、重命名、路径截取、文件创建全场景操作。
ls(查看目录内容)
📌 常用实操:
ls # 查看当前目录普通文件、目录
ls -l # 详细展示权限、大小、时间、所有者
ls -a # 展示所有文件,包含隐藏文件(.开头)
ls -lh # 人性化展示文件大小(KB/MB)
cp(复制文件/目录)
📌 常用实操:
cp test.txt /home # 复制文件到指定目录
cp -r folder /home # 递归复制整个目录(目录复制必须加 -r)
cp -f test.txt /home # 强制覆盖已存在文件,不提示
rm(删除文件/目录)
📌 常用实操:
rm test.txt # 删除普通文件
rm -rf folder # 强制递归删除非空目录(生产环境慎用!)
⚠️ 禁忌:禁止直接执行 rm -rf / ,会清空系统根目录
mv(移动/重命名)📌 常用实操:
mv test.txt /home # 移动文件到指定路径
mv oldname.txt newname.txt # 同路径下即为重命名
mv folder /tmp # 移动整个目录
basename(截取文件名)
📌 实操:basename /home/test.txt
✅ 输出结果:test.txt
dirname(截取目录路径)
📌 实操:dirname /home/test.txt
✅ 输出结果:/home
touch(创建文件/修改时间属性)
📌 常用实操:
touch test.txt # 创建空文件
touch -m test.txt # 手动修改mtime(内容修改时间)
touch -a test.txt # 手动修改atime(访问时间)
✅ 三种核心时间:
- mtime:文件内容发生变更更新
- atime:文件被读取、打开访问更新
- ctime:文件权限、所有者、路径变更更新
三、文件内容查看命令
适配不同阅读场景,支持全屏查看、分页浏览、指定行数查看、二进制查看。
cat(正向查看文件)
📌 实操:cat test.txt
💡 适用场景:小文件、配置文件快速查看,不适合大日志文件
tac(反向查看文件)
📌 实操:tac test.txt
💡 作用:从最后一行倒序输出内容,快速查看文件末尾最新记录
nl(带行号查看)
📌 实操:nl test.txt
💡 优势:自带有序行号,排查代码、配置报错精准定位行数
more(分页查看)
📌 实操:more test.log
⌨️ 操作:空格向下翻页、回车逐行浏览,不支持向上回翻
less(全能分页查看)
📌 实操:less test.log
⌨️ 核心操作:上下箭头翻页、/关键词 搜索、q 退出
💡 首选工具:大文件、日志排查最优查看命令
head(查看头部行数)
📌 实操:
head test.txt # 默认查看前10行
head -n 20 test.txt # 自定义查看前20行
tail(查看尾部行数/实时日志)
📌 实操:
tail test.txt # 默认查看后10行
tail -n 15 test.txt # 查看最后15行
tail -f test.log # 实时监听文件新增内容(日志排查神器)
od(二进制查看)
📌 实操:od test.bin
💡 适用场景:查看二进制文件、程序文件、特殊编码文件
四、文件默认权限与隐藏权限
Linux权限分为默认基础权限和特殊隐藏权限,是文件安全管控的核心。
1. 默认权限(umask)
系统默认权限掩码,决定新建文件、目录的初始权限:
新建文件默认基准权限:666
新建目录默认基准权限:777
最终权限 = 基准权限 - umask掩码权限
📌 实操示例:
1. 查看当前掩码:umask(默认普通用户0022、root0022)
2. 普通用户新建文件:666-022=644(rw-r--r--)
3. 普通用户新建目录:777-022=755(rwxr-xr-x)
2. 隐藏权限(chattr / lsattr)
不同于基础读写执行权限,隐藏权限可实现文件防改、防删,通过 chattr 设置,lsattr 查看。
+i 锁写权限(只读锁定)
📌 实操:
chattr +i test.txt # 锁定文件,禁止修改、删除、重命名
chattr -i test.txt # 解除锁定
⚠️ 权限极强,仅root可操作,适合保护重要配置文件
+a 追加权限(仅新增不修改)
📌 实操:
chattr +a test.log # 仅允许追加内容,无法改动、删除旧数据
chattr -a test.log # 解除追加权限
💡 适用场景:日志文件防篡改、只记录不删除
查看隐藏权限:lsattr 文件名
五、Linux 三大特殊权限(SUID / SGID / SBIT)
特殊权限是Linux高阶权限机制,用于突破普通权限限制,适配特殊业务场景。
1. SUID(用户特殊权限 S)
仅对二进制可执行程序生效,核心规则:
2. SGID(群组特殊权限 S)
支持二进制程序、目录两种生效场景:
✅ 对二进制程序:执行者需拥有程序x权限,运行时临时获得程序所属群组的权限
✅ 对目录:
3. SBIT(粘滞位 T)
仅对目录生效,对文件无效,核心作用:目录权限管控。
当用户拥有目录w、x写入权限时,在该目录创建的文件/目录,仅创建者和root用户可删除,其他用户无删除权限,常用于公共共享目录。
📌 实操示例:系统/tmp目录默认开启SBIT粘滞位,所有用户可写入文件,但只能删除自己创建的文件,防止普通用户误删他人临时文件。
六、文件类型与文件查找命令
1. 文件类型查看
file 命令:精准识别文件类型(普通文件、目录、链接、二进制程序等),弥补ls无法精准区分文件类型的不足。
📌 实操:file test.txt / file /bin/ls
2. 四大文件查找命令
which(查找可执行命令)
📌 实操:which ls / which java
💡 作用:快速定位系统命令、可执行程序的安装路径
whereis(精准检索系统文件)
📌 实操:whereis nginx
💡 作用:查找程序、配置文件、帮助文档,检索范围为系统固定目录
locate(数据库快速模糊查找)
📌 实操:
updatedb # 更新文件数据库(新文件需先更新)
locate test.txt # 模糊匹配查找文件
💡 优点:检索速度极快,适合全局模糊查找
find(全能精准查找)
📌 核心实操示例:
1. 按名称查找:find /home -name "*.txt" # 查找home下所有txt文件
2. 按时间查找:find ./ -mtime -1 # 查找24小时内修改的文件
3. 按权限查找:find ./ -perm 644 # 查找权限为644的文件
4. 按用户查找:find /home -user root # 查找root所属文件
5. 高级实操(-exec执行命令):
find ./ -name "*.log" -exec rm -f {} \; # 批量删除所有log文件
⚠️ -exec 高危操作需谨慎,建议先find检索确认再执行
结语
文件与目录管理是Linux的基石,无论是日常操作、日志排查、权限安全管控,还是服务器运维,都离不开以上命令和权限机制。熟练掌握基础命令+特殊权限规则,能大幅提升Linux操作效率,规避权限安全问题。