NAME
find - 递 归 地 在 层 次 目 录 中 处 理 文 件
总 览 SYNOPSIS
find [path...] [expression]
描 述 DESCRIPTION
这 个 文 档 是 GNU版 本 find 命 令 的 使 用 手 册 。 find 搜 索 目 录 树 上 的 每 一 个 文 件 名 , 它 从 左 至 右 运 算 给 定 的 表 达 式 , 按 照 优 先 规 则 (见 运 算 符 OPERATORS一 节 )进 行 匹 配 , 直 到 得 出 结 果 ( 左 边 运 算 在 ’与 ’ 操 作 中 得 出 假 , 在 ’或 ’ 操 作 中 得 出 真 ) , 然 后 find 移 向 下 一 个 文 件 名 。 第 一 个 以 ’-’ , ’(’ , ’)’ , ’,’ 或 ’!’ 这 些 字 符 起 始 的 参 数 是 表 达 式 的 开 始 ; 在 它 之 前 的 任 何 参 数 是 要 搜 索 的 路 径 , 在 它 之 后 的 任 何 参 数 都 是 表 达 式 的 余 下 部 分 。 如 果 没 有 路 径 参 数 , 缺 省 用 当 前 目 录 。 如 果 没 有 表 达 式 , 缺 省 表 达 式 用 ’-print’. 当 所 有 文 件 都 成 功 处 理 时 find 退 出 并 返 回 状 态 值 0。 如 果 发 生 错 误 则 返 回 一 个 大 于 0的 值 。
表 达 式 EXPRESSIONS
表 达 式 是 由 选 项 (选 项 总 是 影 响 所 有 的 操 作 , 而 不 仅 仅 是 一 个 指 定 的 文 件 的 处 理 , 而 且 总 是 返 回 真 值 ), 测 试 (测 试 返 回 一 个 真 值 或 一 个 假 值 ), 还 有 动 作 (动 作 有 side effects, 返 回 一 个 真 值 或 假 值 ) 组 成 。 它 们 都 以 运 算 符 分 开 .忽 略 运 算 符 的 时 候 , 默 认 使 用 -and 连 接 . 如 果 表 达 式 没 有 包 含 -prune 以 外 的 动 作 , 当 表 达 式 为 真 时 会 执 行 -print 动 作 。 选 项 OPTIONS 所 有 的 选 项 都 总 是 返 回 真 值 , 它 们 总 会 被 执 行 , 除 非 放 在 表 达 式 中 执 行 不 到 的 地 方 。 因 此 , 清 楚 起 见 , 最 好 把 它 们 放 在 表 达 式 的 开 头 部 分 。
-daystart 从 当 日 起 始 时 开 始 而 不 是 从 24小 时 之 前 , 计 算 时 间 (for -amin, -atime, -cmin, -ctime, -mmin, and -mtime)。
-depth 先 处 理 目 录 的 内 容 再 处 理 目 录 本 身 。 |
-follow 不 检
索 符 号 链 接 。
隐 含 了 -noleaf。
-help, --help 列 出 find 的
命 令 行 用 法 的
概 要 , 然 后 退
出 。
-maxdepth levels 进 入 命 令
行 参 数 指 定 的
目 录 下 层 目 录
时 , 最 深 不 超
过 levels(一 个 非 负
整 数 ) 层 。 ’-maxdepth
0’ 意 味 着 只 在
命 令 行 参 数 指
定 的 目 录 中 执
行 测 试 和 动 作
。
-mindepth levels 不 在
levels(一 个 非 负 整
数 )层 之 内 执 行
任 何 测 试 和 动
作 。 ’-mindepth 1’意 味
着 处 理 所 有 的
文 件 , 除 了 命
令 行 参 数 指 定
的 目 录 中 的 文
件 。
-mount 不 进 入 处 于 其 它 文 件 系 统 之 上 的 目 录 。 可 以 用 |
-xdev代 替 , 从 而 和 一 些 其 |
他 版 本 的 find 兼 容 。
-noleaf 不 为
“目 录 中 子 目 录
数 量 比 硬 连 接
数 少 2”这 种 假
设 做 优 化 。 这
个 选 项 在 搜 索
那 些 不 遵 循 UNIX文
件 系 统 链 接 约
定 的 文 件 系 统
时 用 , 比 如
CD-ROM,MS-DOS文 件 系 统 或
AFS卷 的 加 载 点 。
在 普 通 的 UNIX文 件
系 统 中 ,每 个 目
录 至 少 有 两 个
硬 连 接 ,它 的 名
字 和 它 的 ’.’ 条
目 。 另 外 , 它
的 子 目 录 (假 如
有 )还 会 各 有 一
个 ’..’ 链 接 到
它 。 在 find 检 索
一 个 目 录 时 ,
发 现 子 目 录 数
比 它 的 连 接 数
少 二 时 , 它 就
知 道 目 录 中 的
其 他 条 目 并 非
目 录 (而 是 目 录
树 中 的 叶
(’leaf’)节 点 )。 除
非 需 要 检 索 的
是 这 个 叶 节 点
, 否 则 没 必 要
去 处 理 它 。 这
样 可 以 带 来 很
大 的 搜 索 速 度
提 升 。
-version, --version 打 印 find的
版 本 号 然 后 退
出 。
-xdev 不 进 入 处 于 其 他 文 件 系 统 之 上 的 目 录 。 测 试 |
TESTS 数 字 参 数 可 以 这 样 给 出 :
+n 是 比 |
n 大 , |
||
-n 是 比 |
n 小 , |
||
n 正 好 是 |
n 。 |
-amin n 对
文 件 的 最 近 一
次 访 问 是 在 n
分 钟 之 前 。
-anewer file 对 文 件 的
最 近 一 次 访 问
比 file 修 改 时 间
要 晚 。 如 果 命
令 行 中 -follow 在 -anewer 之
前 , (也 只 有 在
这 种 情 况 下 ) -anewer
会 受 -follow 的 影 响
。
-atime n 对 文 件 的 最
近 一 次 访 问 是
在 n*24 小 时 之 前
。
-cmin n 对 文 件 状 态
的 最 近 一 次 修
改 是 在 n 分 钟
之 前 。
-cnewer file 对 文 件 状
态 的 最 近 一 次
修 改 比 file 修 改
时 间 要 晚 。 如
果 命 令 行 中 -follow
在 -cnewer 之 前 , (也
只 有 在 这 种 情
况 下 ) -cnewer 会 受 -follow
的 影 响 。
-ctime n 对 文 件 状 态
的 最 近 一 次 修
改 是 在 n*24 小 时
之 前 。
-empty 文 件 是 空 的 普 通 文 件 或 者 空 目 录 。 |
||
-false 总 是 |
false。
-fstype type 文 件 处 于
type 类 型 的 文 件
系 统 之 上 。 有
效 的 文 件 系 统
类 型 在 不 同 版
本 的 Unix中 是 不 同
的 ; 一 些 Unix中 的
不 完 全 的 文 件
系 统 类 型 列 表
是 这 样 : ufs, 4.2, 4.3, nfs, tmp,
mfs, S51K, S52K. 你 可 以 用 -printf
加 上 %F 指 令 来 查
看 你 的 文 件 系
统 的 类 型 。
-gid n 文 件 的 数 字 形 式 的 组 |
ID是 n。 |
-group gname 文
件 属 于 gname (也 允
许 使 用 数 字 形
式 的 组 ID).
-ilname pattern 和 -lname 类 似
, 但 是 匹 配 时
是 不 区 分 大 小
写 的 。
-iname pattern 和 -name 类 似
, 但 是 匹 配 时
是 不 区 分 大 小
写 的 。 例 如 ,
’fo*’ and ’F??’ 模 式
与 文 件 名 ’Foo’,
’FOO’, ’foo’, ’fOo’
等 等 相 匹 配 。
-inum n 文 件 的 i 结
点 数 是 n。
-ipath pattern 和 -path 类 似
, 但 是 匹 配 时
是 不 区 分 大 小
写 的 。
-iregex pattern 和 -regex 类 似 ,
但 是 匹 配 时 是
不 区 分 大 小 写
的 。
-links n 文 件 有 n 个
链 接 。
-lname pattern 文 件 是 一
个 与 pattern 匹 配 的
符 号 链 接 。 元
字 符 不 会 对 ’/’
或 ’.’ 做 特 殊 处
理 。
-mmin n 对 文 件 数 据
的 最 近 一 次 修
改 是 在 n 分 钟
之 前 。
-mtime n 对 文 件 数 据
的 最 近 一 次 修
改 是 在 n*24 小 时
之 前 。
-name pattern 基 本 的 文
件 名 (将 路 径 去
掉 了 前 面 的 目
录 )与 shell模 式
pattern相 匹 配 。 元
字 符 (’*’, ’?’,
还 有 ’[]’ ) 不 会
匹 配 文 件 名 开
头 的 ’.’ 。 使 用
-prune 来 略 过 一 个 目
录 及 其 中 的 文
件 。 查 看 -path 的 描
述 中 的 范 例 。
-newer file 对 文 件 的
最 近 一 次 修 改
比 file 修 改 时 间
要 晚 。 如 果 命
令 行 中 -follow 在 -newer 之
前 , (也 只 有 在
这 种 情 况 下 ) -newer
会 受 -follow 的 影 响
。
-nouser 没 有 符 合 文
件 的 数 字 形 式
的 用 户 ID的 用 户
。
-nogroup 没 有 符 合 文
件 的 数 字 形 式
的 组 ID的 组 。
-path pattern 文 件 名 与
shell模 式 pattern相 匹
配 。 元 字 符 不
会 对 ’/’ 或 ’.’
做 特 殊 处 理 。
因 此 , 例 如 :
find . -path
’./sr*sc’ 如 果 存 在
’./src/misc’ 的 话 , 会
将 它 打 印 出 来
。 想 要 忽 略 一
个 完 整 的 目 录
树 , 应 当 使 用 -prune
而 不 是 检 查 目
录 树 中 所 有 的
文 件 。 例 如 :
要 跳 过 ’src/emacs’ 目
录 和 其 中 所 有
的 文 件 和 子 目
录 , 把 其 他 找
到 的 文 件 打 印
出 来 , 应 当 这
样 :
find . -path ’./src/emacs’ -prune -o -print
-perm mode 文
件 的 权 限 位 恰
好 是 mode (八 进 制
或 符 号 )。 Symbolic modes use mode
0 as a point of departure.
-perm -mode 所 有 的 权
限 位 mode 都 被 设
置 了 的 文 件 。
-perm +mode 任 何 权 限
位 mode 被 设 置 了
的 文 件 。
-regex pattern 文 件 名 与
正 则 表 达 式 pattern
匹 配 。 这 是 对
整 个 路 径 的 匹
配 , 不 是 搜 索
文 件 。 例 如 ,
要 匹 配 名 为
’./fubar3’ 的 文 件 ,
可 以 使 用 正 则
表 达 式 ’.*bar.’ 或
者 ’.*b.*3’, 但 是
不 能 用 ’b.*r3’。
-size n[bckw] 文 件 使 用
了 n 单 位 个 存
储 单 元 。 默 认
的 单 位 是 512字 节
的 块 , 也 可 以
用 n后 面 加 上
’b’ 来 指 定 这 个
值 。 其 他 的 单
位 是 字 节 , 如
果 在 n 后 面 加
上 ’c’ ; 千 字 节
(kB), 如 果 在 n 后
面 加 上 ’k’ ; 两
字 节 的 字 , 如
果 在 n 后 面 加
上 ’w’ 。 大 小 不
会 计 入 indirect blocks, 但
是 会 计 入 没 有
真 正 分 配 空 间
的 疏 松 文 件 中
的 块 。
-true 总 是 |
true。 |
-type c 文 件 是 c 类 型 的 。 类 型 可 取 值 如 下 :
b 特 殊 块 文 件 |
(缓 冲 的 )
件 (不 缓
冲 ) (Solaris 特 有 )
-used n 文
件 最 后 一 次 存
取 是 在 最 后 一
次 修 改 它 的 状
态 的 n 天 之 后
。
-print0 返 回
true; 在 标 准 输 出
打 印 文 件 全 名
, 然 后 是 一 个
null字 符 。 这 样 可
以 使 得 处 理 find
的 输 出 的 程 序
可 以 正 确 地 理
解 带 有 换 行 符
的 文 件 名 。
tab
|