OFFSET偏移
← 文章目录OFFSET / FIELD NOTESNO. 039

文件与目录操作

从目录浏览、文件查找到链接、归档和空间查询,掌握日常文件操作。

所在专题Linux 命令行基础与组合 ↗
约 5 分钟阅读开始阅读

rm、cp、mv 是文件操作的最小集。下面补全日常高频的其余命令。


查看与浏览#

ls — 列出目录内容

最常用的命令,没有之一。

ls          # 平铺列出当前目录
ls -l       # 长格式:权限/大小/日期
ls -a       # 显示隐藏文件(. 开头的)
ls -la      # 长格式 + 隐藏文件
ls -lh      # 人类可读的大小(1K 234M 3G)
ls -lt      # 按修改时间排序,最新的在前

记忆口诀:ls -lah = 全看到 + 能读懂。

通配符配合 ls

ls *.md       # 列出所有 .md 文件
ls report_??  # 列出 report_01, report_02 等两字符后缀
ls [abc]*     # 列出以 a/b/c 开头的文件

创建与删除#

mkdir — 创建目录

mkdir new_dir           # 创建一个目录
mkdir -p a/b/c/d        # 级联创建,不报错

-p 是最常用的选项:父目录不存在时自动创建,已存在也不报错。

touch — 创建空文件 / 更新修改时间

touch note.md           # 新建空文件(不存在时)
touch existing_file     # 更新时间戳为现在(存在时)

rmdir — 删除空目录

rmdir empty_dir         # 只删空目录,非空时报错(安全)

实际上更常用 rm -rf 删非空目录,但需要格外小心。


查找与定位#

find — 按条件搜索文件

find . -name "*.md"              # 按名字在当前目录及子目录搜索
find . -type d -name "Notes"     # 只搜目录
find . -type f -size +100M       # 搜 >100M 的文件
find . -mtime -7                  # 最近 7 天修改过的文件

find 的强大在于能对搜到的文件执行操作:

find . -type f -name "*.tmp" -print  # 先核对待删除文件
find . -type f -name "*.tmp" -delete # 确认目录与匹配范围后删除,无法自动撤回
find . -name "*.md" -exec wc -l {} +   # 统计每个 .md 文件的行数

链接#

ln — 创建硬链接和软链接

ln target link_name        # 硬链接:同一个文件的两个名字
ln -s target link_name     # 软链接:指向目标的快捷方式

日常几乎只用软链接:

ln -s /path/to/long/directory/app  ~/shortcut

软链接可以类比快捷方式,但它保存的是路径。删除目标路径后,软链接会断开;硬链接仍指向同一 inode,直到最后一个硬链接删除且没有进程打开该文件,文件数据才释放。硬链接通常不能跨文件系统,也通常不能链接目录。


打包与压缩#

tar — 打包

tar -cvf archive.tar dir/         # 打包(不压缩)
tar -czvf archive.tar.gz dir/     # 打包 + gzip 压缩
tar -xvf archive.tar              # 解包
tar -xzvf archive.tar.gz          # 解包 + 解 gzip

记忆:c = create 创建,x = extract 解包,z = gzip,v = verbose 显示过程,f = file 指定文件名。

zip / unzip — 跨平台压缩

zip -r archive.zip dir/           # 递归压缩
unzip archive.zip                 # 解压
unzip -l archive.zip              # 只看不解

磁盘空间#

du — 目录/文件占多少空间

du -sh dir/          # 总计大小,人类可读
du -sh *             # 当前目录每个文件/文件夹各占多少
du -sh * | sort -hr  # 从大到小排

df — 磁盘还剩多少空间

df -h                # 各分区用量,人类可读

输出与传输#

echo 与 cat

echo "hello"              # 输出文本到终端
echo "hello" > file.txt   # 输出到文件(覆盖)
cat file.txt              # 显示文件全部内容
cat a.txt b.txt > c.txt   # 合并两个文件

与已有知识的衔接#

你已经知道 现在补上 关系
rm rmdir / find -delete 按条件删除;-delete 同样不可撤回
cp tar / zip 归档多个文件,便于复制或传输
mv ln -s 移动 vs 引用
无 ls / du / df 看见文件系统的眼睛

权限管理(chmod / chown / chgrp)在 Linux 文件权限 中详述。



参考与延伸

  1. GNU Coreutils 手册 ↗
  2. GNU Findutils 手册 ↗

根据技术笔记重新整理,示例使用通用名称。

沿专题继续阅读

Linux 命令行基础与组合

  1. 01文件与目录操作
  2. 02进程与作业管理
  3. 03文本处理与系统查询
  4. 04Shell 基本功
  5. 05模糊搜索:fzf
  6. 06参数传递:xargs
CONTINUE READING / 下一篇进程与作业管理

用进程快照、信号和前后台作业理解程序的运行与退出。