Shell 文件与目录命令速查
更新时间:2026-08-25。本文覆盖 Shell 编程主题的第④族:文件与目录管理,约 18 个命令。
一、浏览与切换
1.1 pwd / cd
bash
pwd # 当前路径
cd /var/log # 切换目录
cd .. # 上级
cd ~ # 家目录
cd - # 回到上一个目录1.2 ls — 列目录
bash
ls # 简列
ls -l # 长格式(权限/属主/大小/时间)
ls -a # 含隐藏文件(. 开头)
ls -h # 人类可读大小(配合 -l)
ls -lt # 按时间倒序
ls -S # 按大小排序
ls -d */ # 只列目录1.3 tree
bash
tree # 树状结构
tree -L 2 # 只显示 2 层
tree -d # 只列目录二、创建与删除
2.1 mkdir / rmdir
bash
mkdir newdir # 建目录
mkdir -p a/b/c # 递归创建
rmdir emptydir # 删空目录(非空会报错)
rm -r dir # 递归删除目录(非空)2.2 touch
bash
touch file.txt # 创建空文件 / 更新时间戳
touch -t 202608251200 file # 设定指定时间2.3 rm — 删除(谨慎!)
bash
rm file.txt # 删文件
rm -r dir # 递归删目录
rm -f file # 强制(不提示)
rm -i file # 交互确认安全提示:
rm -rf极危险。删除前先ls确认,或用trash代替。防rm -rf $var未赋值导致误删——务必校验变量非空。
三、复制与移动
3.1 cp
bash
cp src.txt dst.txt # 复制
cp -r srcdir dstdir # 递归复制目录
cp -i a b # 覆盖前确认
cp -p a b # 保留权限/时间戳
cp -a a b # 归档(递归+保留所有属性)3.2 mv
bash
mv a.txt b.txt # 重命名 / 移动
mv -i a.txt dir/ # 移动并覆盖确认
mv a.txt .bak # 改后缀3.3 ln — 链接
bash
ln -s target link # 软链接(符号链接,常用)
ln target hard # 硬链接
ls -l # 软链接显示 -> 指向软/硬链接区别:软链接是"快捷方式",可跨文件系统、可指向目录;硬链接共享 inode,跨文件系统不可、不可指向目录。
四、查找与信息
4.1 find — 高级查找(最常用)
bash
find . -name "*.log" # 按名查找
find /var -type f -size +100M # 大于 100M 的文件
find . -type d -name "node_modules" # 目录
find . -mtime -1 # 最近 1 天修改
find . -newer ref.txt # 比 ref.txt 新
find . -name "*.tmp" -delete # 找到即删除
find . -name "*.log" -exec rm {} \; # 找到执行命令
find . -name "*.log" | xargs grep "err" # 配合 xargs4.2 locate
bash
locate nginx.conf # 按数据库快速查找(可能需 updatedb 更新)4.3 stat / file
bash
stat file.txt # 完整文件元信息(inode、大小、时间、权限)
file app.bin # 判断文件类型(文本/二进制/ELF)五、权限管理
5.1 chmod — 权限
bash
chmod 755 script.sh # 数字法:rwxr-xr-x
chmod u+x script.sh # 符号法:给属主加执行
chmod a+x script.sh # 所有人加执行
chmod -R 755 dir/ # 递归权限数字:r=4、w=2、x=1。755 = 属主 rwx,组和其他 r-x。
5.2 chown — 属主
bash
chown user:group file.txt # 改属主和属组
chown -R user:group dir/ # 递归
chown user file.txt # 只改属主5.3 umask
bash
umask # 查看默认权限掩码
umask 022 # 新文件默认 644,新目录默认 755六、批量处理
xargs 是"把前一个命令的输出作为后一个命令参数"的关键:
bash
find . -name "*.tmp" | xargs rm # 删除所有 tmp
ls *.log | xargs -I{} mv {} {}.bak # 批量改名
echo "a b c" | xargs -n1 echo # 每参数执行一次七、与主线衔接
find+xargs+grep是日志/源码检索的黄金组合,衔接 文本处理命令。ls -l/stat的权限与时间信息,理解它们有助于读懂 进程与系统命令 中的用户态排查。chmod可执行位是"让脚本可运行"的前提——写好的脚本要chmod +x才能直接执行。
一句话总结
文件目录命令三板斧:ls -lh 看、cp -a/mv/rm 改、find + xargs 批量找;权限靠 chmod 755 与 chown,链接用 ln -s——掌握这些就掌握了 Linux 文件层的日常操作。