Manpages

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 特 殊 塊 文 件

(緩 衝 的 )

c 特 殊 字 符 文

件 (不 緩 衝 )
d 目 錄
p 命 名 管 道 (FIFO)
f 普 通 文 件
l 符 號 鏈 接
s 套 接 字
D 門

(Solaris 特 有 )

-uid n 文 件 的 數 字 形 式 的 用 戶

ID是 n

-used n 文 件 最 後 一 次 存 取 是 在 最 後 一 次 修 改 它 的 狀 態 的 n 天 之 後 。
-user uname 文 件 的 所 有 者 是 uname (也 可 以 使 用 數 字 形 式 的 用 戶 ID).
-xtype c 和 -type 相 同 , 除 非 文 件 是 一 個 符 號 鏈 接 。 對 於 符 號 鏈 接 : 如 果 沒 有 給 出 -follow , 如 果 文 件 是 一 個 指 向 c 類 型 文 件 的 鏈 接 , 那 麼 返 回 true; 如 果 給 出 了 -follow , 如 果 c 是 ’l’ 那 麼 返 回 true。 換 句 話 說 , 對 於 符 號 鏈 接 , -xtype 檢 查 那 些 -type 不 檢 查 的 文 件 。 動 作 ACTIONS
-exec command ; 執 行 command; 如 果 命 令 返 回 狀 態 值 0, 那 麼 exec 返 回 true。 所 有 find 其 餘 的 命 令 行 參 數 將 作 爲 提 供 給 命 令 的 參 數 , 直 到 遇 到 一 個 由 ’;’ 組 成 的 參 數 爲 止 。 命 令 的 參 數 中 , 字 符 串 ’{}’ 將 以 正 在 處 理 的 文 件 名 替 換 。 所 有 的 ’{}’ 都 會 被 替 換 , 不 僅 是 在 單 獨 的 一 個 參 數 中 。 有 些 版 本 的 find 不 是 這 樣 做 的 。 這 些 參 數 可 能 需 要 用 ’\’ 來 escape 或 者 用 括 號 括 住 , 防 止 它 們 被 shell展 開 。 命 令 是 從 起 始 目 錄 執 行 的 。
-fls file 返 回 true; 類 似 -ls 但 是 像 -fprint 那 樣 寫 入 file
-fprint file 返 回 true; 將 文 件 全 名 打 印 到 文 件 file 中 。 如 果 運 行 findfile 不 存 在 , 那 麼 它 將 被 創 建 。 如 果 它 存 在 , 它 將 被 覆 蓋 。 文 件 名 ’’/dev/stdout’’ 和 ’’/dev/stderr’’ 會 作 特 殊 處 理 ; 它 們 分 別 指 的 是 標 準 輸 出 和 標 準 錯 誤 輸 出 。
-fprint0 file 返 回 true; 類 似 -print0 但 是 像 -fprint 那 樣 寫 入 file
-fprintf file format 返 回 true; 類 似 -printf 但 是 像 -fprint 那 樣 寫 入 file
-ok command ; 類 似 -exec 但 是 會 先 向 用 戶 詢 問 (在 標 準 輸 入 ); 如 果 迴 應 不 是 以 ’y’ 或 ’Y’ 起 始 則 不 會 運 行 command 而 是 返 回 false。

-print 返 回

true; 在 標 準 輸 出 打 印 文 件 全 名 , 然 後 是 一 個 換 行 符 。

-print0 返 回 true; 在 標 準 輸 出 打 印 文 件 全 名 , 然 後 是 一 個 null字 符 。 這 樣 可 以 使 得 處 理 find 的 輸 出 的 程 序 可 以 正 確 地 理 解 帶 有 換 行 符 的 文 件 名 。
-printf format 返 回 true; 在 標 準 輸 出 打 印 format , 解 釋 ’\’ escape 還 有 ’%’ 指 令 。 字 段 寬 度 和 精 度 可 以 像 C函 數 ’printf’ 那 樣 來 指 定 。 與 -print 不 同 的 是 , -printf 在 字 符 串 末 端 不 會 添 加 一 個 新 行 。 可 用 的 escape 和 指 令 如 下 :

\a 警 告 鈴 聲

\b 回 退

\c 立 即 停 止 以 當 前 格 式 輸 出 , 刷 新 輸 出 設 備 。

\f 表 格 結 束

\n 新 行

\r 回 車

\t 水 平

tab

\v 豎 直

tab

\\ 輸 出

自 身 ’\’
\NNN

ASCII編 碼 是 NNN(八 進 制 )的 字 符

在 一 個 ’\’ 字 符 後 面 使 用 任 何 其 他 字 符 會 被 作 爲 普 通 的 字 符 , 因 此 它 們 都 會 被 打 印 出 來 。

%% 輸 出 自 身

’%’

%a 文 件 最 後

一 次 存 取 的 時 間 。 格 式 是 C函 數 ’ctime’ 返 回 值 的 格 式 。

%Ak

文 件 最 後 一 次 存 取 的 時 間 。 格 式 以 k 指 定 , 可 以 是 ’@’ 或 者 是 C函 數 ’strftime’ 的 指 令 格 式 。 下 面 列 出 了 k 可 用 的 值 ; 有 一 些 並 不 是 在 所 有 系 統 上 都 可 用 , 因 爲 不 同 系 統 中 ’strftime’ 也 不 同 。

@ 從

Jan. 1, 1970, 00:00 GMT 起 的 秒 數 時 間 字 段 :

H 小 時

(00..23)

I 小 時

(01..12)

k 小 時

( 0..23)

l 小 時

( 1..12)

M 分 鐘

(00..59)

p 本 地 的

AM 或 者 PM

r

12小 時 格 式 的 時 間 (hh:mm:ss [AP]M)

S 秒

(00..61)

T

24小 時 格 式 的 時 間 (hh:mm:ss)

X 本 地 的 時 間 表 示 方 法

(H:M:S)

Z 時 區

(例 如 , EDT), 如 果 不 能 決 定 時 區 就 是 空 日 期 字 段 :

a 本 地 一 星 期 中 每 天 的 名 稱 的 縮 寫

(Sun..Sat)

A 本 地 一 星 期 中 每 天 的 全 名 , 可 變

長 度 (Sunday..Saturday)

b

本 地 每 月 的 名 稱 的 縮 寫 (Jan..Dec)

B 本 地 每 月 的 全 名 , 可 變 長

度 (January..December)
c 本 地 的 日 期 和 時 間 表 示 (Sat Nov 04 12:02:33 EST

1989)

d 一 個 月 當 中 的 日 子

(01..31)

D 日 期

(mm/dd/yy)

h 與

b 相 同

j 一 年

當 中 的 日 子 (001..366)
m 月 份 (01..12)

U 以 星 期

日 作 爲 每 週 起 始 , 一 年 當 中 的 星 期 (00..53)
w 一 星 期 當 中 的 日 子 (0..6)

W 以 星 期 一 當 作 每 週 起

始 , 一 年 當 中 的 星 期 (00..53)
x 本 地 的 日 期 表 示 (mm/dd/yy)
y 年 份 的 最 後 兩 位 (00..99)
Y 年 份

(1970...)

%b 文 件 大 小 , 以

512字 節 的 塊 爲 單 位 (四 捨 五 入 )。

%c 文 件 狀 態 最 後

一 次 修 改 的 時 間 。 格 式 是 C函 數 ’ctime’ 返 回 值 的 格 式 。

%Ck

文 件 狀 態 最 後 一 次 修 改 的 時 間 。 格 式 以 k 指 定 , 類 似 於 %A。
%d 文 件 在 目 錄 樹 中 的 深 度 ; 0 意 味 着 文 件 是 一 個 命 令 行 參 數 。

%f 去 掉 了 前 面 的 目 錄 的 文 件

名 (只 剩 下 最 後 的 成 分 )。

%F 文 件 所 在 文 件 系 統 的 類 型 ; 這

個 值 可 以 爲 -fstype 所 用 。

%g 文 件 的 組 名 , 如 果 組 沒 有 名 稱 就 是 數 字 形 式

的 組 ID。
%G 文 件 的 數 字 形 式 的 組 ID。

%h 文 件 名 的 前 面 的 目 錄

部 分 (僅 除 去 最 後 的 成 分 )。
%H 據 以 找 到 了 文 件 的 命 令 行 參

數 。

%i 文 件 的

i 結 點 號 (16進 制 )。

%k 文 件 大 小

, 以 1kB 的 塊 爲 單 位 (四 捨 五 入 )。

%l 符 號 鏈 接 的 目

標 (如 果 文 件 不 是 一 個 符 號 鏈 接 , 那 麼 結 果 是 空 字 符 串 )。

%m

文 件 的 權 限 位 (8進 制 )。
%n 文 件 的 硬 連 接 數

%p 文 件 名 。

%P 文 件 名 , 去 掉 了 據 以 找 到 了 文 件 的 命 令 行 參 數 的 名 稱 部 分 。

%s 文 件 大 小 , 以 字 節 爲 單 位 。

%t 文 件 最 後 一 次 修 改 的 時 間 。 格 式 是

C函 數 ’ctime’ 返 回 值 的 格 式 。

%Tk 文 件 最 後 一 次 修 改 的 時 間 。 格 式 以

k 指 定 , 類 似 於 %A。

%u 文 件 的 用 戶 名 , 如 果 用 戶 沒 有 名 稱 就

是 數 字 形 式 的 用 戶 ID。
%U 文 件 的 數 字 形 式 的 用 戶 ID。

在 一 個 ’%’ 字 符 後 面 使 用 任 何 其 他 字 符 , ’%’ 將 被 忽 略 (但 是 其 他 字 符 會 被 打 印 出 來 )。

-prune 如 果 沒 有 給 出

-depth 則 返 回 true; 不 進 入 當 前 目 錄 。

如 果 給 出 了 -depth 則 返 回 false; 沒 有 效 果 。

-ls 返 回

true; 以 ’ls -dils’ 格 式 在 標 準 輸 出 列 出 文 件 。 塊 以 1kB 字 節 爲 單

位 計 數 , 除 非 設 置 了 環 境 變 量 POSIXLY_CORRECT, 那 樣 的 話 會 使 用 512字 節 的 塊 。 運 算 符 OPERATORS 以 優 先 級 高 低 順 序 排 列 :

( expr ) 強 制 爲 優 先

! expr 如 果

expr 是 false則 返 回 true

-not expr 與 ! expr 相 同
expr1 expr2
與 (隱 含 的 默 認 運 算 符 ); 如 果 expr1 爲 false則 不 會 執 行 expr2
expr1
-a expr2expr1 expr2 相 同
expr1
-and expr2expr1 expr2 相 同
expr1
-o expr2 或 ; 如 果 expr1 爲 true 則 不 會 執 行 expr2
expr1
-or expr2expr1 -o expr2 相 同
expr1
, expr2 列 表 ; expr1expr2 都 會 被 執 行 。 expr1 的 值 被 忽 略 , 列 表 的 值 是 expr2的 值

參 見 SEE ALSO

locate(1L), locatedb(5L), updatedb(1L), xargs(1L) Finding Files (Info 在 線 幫 助 , 或 者 是 打 印 的 版 本 )

[中 文 版 維 護 人 ]

袁 乙 鈞 <bbbush [AT] 163.com>

[中 文 版 最 新 更 新 ]

11/01/2003

《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :

http://cmpp.linuxforum.net

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh