Man page - file(1)
Packages contains this manual
Available languages:
en fr pl nl ja uk ro zh_TW zh_CN deManual
FILE
NAME總 覽
描 述
選 項
檔 案
ENVIRONMENT
參 看
標 準 的 一 致 性
MAGIC DIRECTORY
舉 例
歷 史
作 者
合 法 性 通 告
臭 蟲
可 用 性
[中 文 版 維 護 人 ]
[中 文 版 最 新 更 新 ]
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :
跋
NAME
file - 確 定 檔 案 型 別
總 覽
file [ -bcnsvzL ] [ -f 命 名 檔 案 ] [ -m 幻 數 檔 案 ] file ...
描 述
本 手 冊 頁 說 明 了 3.27版 本 file 命 令 的 使 用 . File 命 令 試 圖 檢 查 每 個 引 數 以 判 定 檔 案 的 型 別 . 檢 查 共 有 三 組 , 按 如 下 順 序 進 行 :檔 案 系 統 檢 查 , 幻 數 檢 查 , 以 及 語 言 檢 查 . 檔 案 系 統 檢 查 成 功 則 輸 出 檔 案 型 別 .
輸 出 的 型 別 一 般 會 包 含 以 下 的 詞 中 的 一 個 : text (檔 案 中 僅 有 ASCII 字 元 , 可 以 用 ASCII 終 端 讀 此 檔 案 , 以 保 證 內 容 的 可 靠 性 ), executable (檔 案 中 儲 存 的 是 程 式 編 譯 後 的 結 果 , 一 些 UNIX 核 心 或 其 它 核 心 能 理 解 這 類 檔 案 ), 或 者 data 表 示 所 有 其 它 型 別 檔 案 (data 一 般 為 二 進 位 制 檔 案 或 者 不 可 列 印 的 ). 但 是 有 的 常 用 的 檔 案 格 式 ( 如 core檔 案 、 tar包 ) , 雖 然 也 包 含 二 進 位 制 資 料 , 卻 不 屬 於 這 一 類 如 果 要 修 改 /usr/share/magic 或 者 程 式 本 身 , preserve these keywords . 當 檔 案 為 ‘‘text’’ 型 別 時 , 認 為 此 檔 案 為 可 讀 檔 案 . 不 要 象 在 Berkeley環 境 中 那 樣 做 - 要 把 ‘‘shell commands text’’改 為 ‘‘shell script’’.
檔 案 系 統 檢 查 是 建 立 在 對 stat (2) 系 統 呼 叫 結 果 的 分 析 上 的 . 程 式 會 分 析 檔 案 是 否 為 空 ,或 者 是 否 是 某 種 特 殊 檔 案 . 對 於 所 有 可 在 現 有 系 統 上 使 用 的 檔 案 型 別 (比 如 套 接 口 檔 案 , 動 態 連 結 檔 案 , 命 名 管 道 檔 案 (FIFOs) 等 ), 只 要 它 在 系 統 標 頭 檔 案 sys/stat.h 中 已 經 定 義 過 , 就 可 以 被 檢 查 到 .
幻 數 檢 查 用 來 檢 查 檔 案 中 是 否 有 特 殊 的 固 定 格 式 的 資 料 . 規 範 的 例 子 如 二 進 位 制 可 執 行 檔 案 (編 譯 後 的 程 式 ) a.out ,該 檔 案 格 式 在 標 準 include目 錄 下 的 a.out.h 檔 案 中 定 義 , 也 可 能 在 exec.h 中 定 義 . 這 些 檔 案 在 檔 案 開 始 部 分 附 近 的 一 個 特 殊 位 置 儲 存 有 一 個 ’幻 數 ’ , 透 過 幻 數 告 訴 UNIX 作 業 系 統 此 檔 案 是 二 進 位 制 可 執 行 檔 案 , 和 其 中 包 含 的 其 它 型 別 . 幻 數 的 概 念 已 經 擴 充 套 件 到 資 料 檔 案 .任 何 在 檔 案 固 定 位 置 有 與 檔 案 型 別 相 關 的 不 變 識 別 符 號 的 檔 案 都 可 以 這 樣 表 示 . 這 些 檔 案 中 的 資 訊 可 以 從 幻 數 檔 案 /usr/share/magic 中 讀 取 .
如 果 檔 案 為 ASCII 檔 案 , file 會 試 圖 檢 查 它 的 語 言 . 語 言 檢 查 在 檔 案 開 始 的 幾 個 塊 中 (任 意 位 置 )查 詢 是 否 有 特 殊 字 串 (參 看 names.h ) 例 如 , 關 鍵 字 .br 指 出 此 檔 案 很 可 能 是 troff (1) 輸 入 檔 案 , 而 關 鍵 字 struct 指 出 此 檔 案 是 C程 式 . 語 言 檢 查 不 如 前 兩 組 檢 查 可 靠 , 所 以 放 在 最 後 執 行 .它 也 用 來 檢 查 一 些 混 合 檔 案 (例 如 tar (1) 存 檔 檔 案 )並 確 定 檔 案 是 ‘ascii text’型 別 還 是 ‘data’型 別 .
選 項
|
-b |
不 輸 出 檔 名 (簡 要 模 式 ). |
||
|
-c |
檢 查 時 列 印 輸 出 幻 數 檔 案 的 解 析 結 果 .常 與 -m 一 起 使 用 , 用 來 在 安 裝 幻 數 檔 案 之 前 除 錯 它 . |
-f 命 名 檔 案
從 在 引 數 表 前 的 命 名 檔 案 中 讀 出 將 要 檢 查 的 檔 名 (每 行 一 個 檔 案 ).要 有 命 名 檔 案 , 或 者 至 少 有 一 個 檔 名 引 數 ; 如 果 要 檢 查 標 準 輸 入 , 使 用 ‘‘-’’作 為 檔 案 引 數 .
|
-m list |
指 定 包 含 幻 數 的 檔 案 列 表 .可 以 是 單 個 檔 案 , 也 可 以 是 用 冒 號 分 開 的 多 個 檔 案 . |
||
|
-n |
每 檢 查 完 一 個 檔 案 就 強 制 重 新 整 理 標 準 輸 出 . 僅 在 檢 查 一 組 檔 案 時 才 有 效 . 一 般 在 將 檔 案 型 別 輸 出 到 管 道 時 才 採 用 此 選 項 . |
||
|
-v |
列 印 程 式 版 本 並 退 出 . |
||
|
-z |
試 圖 檢 視 壓 縮 檔 案 內 部 資 訊 . |
||
|
-L |
(在 支 援 符 號 連 結 的 系 統 上 )選 項 顯 示 符 號 連 結 檔 案 的 原 檔 案 , 就 像 ls (1) 命 令 的 like-named 選 項 . |
||
|
-s |
通 常 , file 只 是 試 圖 去 檢 查 在 檔 案 列 表 中 那 些 stat (2) 報 告 為 正 常 檔 案 的 檔 案 的 型 別 .由 於 讀 特 殊 檔 案 將 可 能 導 致 不 可 知 後 果 , 所 以 這 樣 可 以 防 止 發 生 問 題 .使 用 -s 選 項 時 file 命 令 也 將 去 讀 檔 案 列 表 中 的 塊 特 殊 檔 案 和 字 元 特 殊 檔 案 . 一 般 用 於 從 原 始 磁 碟 分 割 槽 中 獲 得 檔 案 系 統 型 別 , 此 檔 案 為 塊 特 殊 檔 案 . 這 個 選 項 也 導 致 file 命 令 忽 略 stat (2) 報 告 的 檔 案 大 小 , 因 為 在 有 些 系 統 中 原 始 磁 碟 分 割 槽 的 大 小 報 告 為 0. |
檔 案
/usr/share/magic - 預 設 的 幻 數 列 表
ENVIRONMENT
環 境 變 數 MAGIC 用 於 設 定 預 設 的 幻 數 檔 案 .
參 看
magic
(4)
- 幻 數 檔 案 的 格
式 .
strings
(1),
od
(1),
hexdump(1)
- 檢
查 非 textfile的 工 具 .
標 準 的 一 致 性
本 程 式 比 System V 的 FILE命 令 強 大 , 幾 乎 能 分 辨 出 所 有 的 模 糊 語 言 . 與 System V 的 FILE命 令 大 部 分 相 容 .本 版 本 能 識 別 更 多 的 magic, 但 是 , 也 將 因 此 在 有 些 情 況 下 會 產 生 不 同 輸 出 (儘 管 更 加 精 確 ).
本
版 本 與 System V的 顯
著 區 別 就 是 本
版 本 對 空 格 是
作 為 分 隔 符 來
處 理 的 , 所 以 不
能 在 格 式 字 串
中 包 含 空 格 . 例
如 ,現 有 幻 數 文
件 中 的
>10 string language impress (imPRESS data)
要 改 為
>10 string language\ impress (imPRESS data)
另 外 , 格 式 字 串
中 的 反 斜 線 符
號 也 要 避 免 .例
如 , 現 有 幻 數
檔 案 中 的
0 string \begindata Andrew Toolkit document
要 改 為
0 string \\begindata Andrew Toolkit document
SunOS releases
3.2及 以 後 的 版 本
包 括 從 System V 發 展
來 的
file
(1) 命 令 ,但
有 所 擴 充 套 件
.本 版 本 與 Sun的
file命 令 差 別 不 大
.它 包 括 對 ‘&’
運 算 子 的 擴 充
套 件 ,例 如 ,
>16 long&0x7fffffff >0 not stripped
MAGIC DIRECTORY
幻 數 檔 案 項 主 要 是 從 USENET收 集 來 的 ,許 多 人 都 為 此 作 出 了 貢 獻 . Christos Zoulas (下 邊 將 提 到 的 )將 收 集 附 加 項 資 訊 及 修 正 幻 數 檔 案 項 . 幻 數 檔 案 項 的 合 併 表 將 會 定 時 釋 出 .
幻 數 檔 案 項 的 順 序 非 常 重 要 .不 同 的 系 統 上 的 幻 數 項 放 的 順 序 可 能 不 同 . 如 果 老 的 file 命 令 使 用 幻 數 檔 案 , 請 將 舊 的 幻 數 檔 案 改 名 儲 存 , (如 改 為 /usr/share/magic.orig ) 以 便 日 後 做 比 較 用 .
舉 例
$ file file.c
file /dev/hda
file.c: C program text
file: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked, not stripped
/dev/hda: block special
$ file -s
/dev/hda{,1,2,3,4,5,6,7,8,9,10}
/dev/hda: x86 boot sector
/dev/hda1: Linux/i386 ext2 filesystem
/dev/hda2: x86 boot sector
/dev/hda3: x86 boot sector, extended partition table
/dev/hda4: Linux/i386 ext2 filesystem
/dev/hda5: Linux/i386 swap file
/dev/hda6: Linux/i386 swap file
/dev/hda7: Linux/i386 swap file
/dev/hda8: Linux/i386 swap file
/dev/hda9: empty
/dev/hda10: empty
歷 史
There has been a file 命 令 至 少 是 從 研 究 版 本 6(手 冊 頁 時 間 為 1975年 1月 )開 始 加 入 UNIX 中 的 . System V 版 本 引 入 了 一 個 重 要 變 化 :幻 數 型 別 的 外 部 表 .程 式 的 運 行 時 間 有 輕 微 下 降 , 但 是 複 雜 性 大 大 增 加 了 .
本 程 式 是 基 於 System V 版 本 的 ,由 Ian Darwin獨 立 設 計 和 編 寫 .
John Gilmore對 原 始 碼 做 了 較 大 修 改 ,在 第 一 版 基 礎 上 有 較 大 提 高 . Geoff Collyer發 現 了 一 些 不 足 之 處 , 並 提 供 了 一 些 幻 數 檔 案 項 . 本 程 式 一 直 在 完 善 中 .
作 者
由 Ian F. Darwin寫 原 始 碼 , UUCP 地 址 {utzoo | ihnp4}!darwin!ian, 電 子 郵 件 ian@sq.com, 郵 寄 地 址 : P.O. Box 603, Station F, Toronto, Ontario, CANADA M4Y 2L8.
由 Rob McMahon修 改 , cudcv@warwick.ac.uk, 1989, 並 對 ‘&’運 算 子 進 行 了 擴 充 ( 不 再 僅 僅 是 簡 單 的 ‘x&y != 0’, 而 是 象 ‘x&y op z’這 樣 ) .
由 Guy Harris修 改 , guy@netapp.com, 1993,完 成 :
恢 復 ‘‘old-style’’ ‘&’ 運 算 子 為 原 來 的 功 能 ,因 為 1) Rob McMahon所 做 的 修 改 打 破 了 原 來 的 使 用 方 式 , 2) 本 版 本 的 file 命 令 支 援 的 SunOS 的 ‘‘new-style’’ ‘&’ 運 算 子 也 處 理 ‘x&y op z’, 3) Rob的 修 改 對 某 些 情 況 沒 有 考 慮 到 ;
引 入 多 級 ‘>’;
引 入 ‘‘beshort’’, ‘‘leshort’’, 等 關 鍵 字 使 得 程 式 能 夠 按 照 一 定 的 位 元 順 序 檢 視 檔 案 中 的 位 元 數 , 而 不 是 僅 按 執 行 file 時 的 本 地 位 元 順 序 檢 視 .
由 Ian Darwin和 其 他 作 者 ( 包 括 Christos Zoulas(christos@astron.com)) 修 改 , 1990-1999.
合 法 性 通 告
版 權 所 屬 (c) Ian F. Darwin, Toronto, Canada, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993.
本 軟 體 獨 立 於 美 國 電 話 電 報 公 司 , Sun微 系 統 公 司 , Digital裝 置 公 司 , Lotus發 展 公 司 , California大 學 董 事 會 , X聯 盟 或 者 MIT,或 者 自 由 軟 體 基 金 會 .
本 軟 體 獨 立 於 美 國 商 業 部 的 任 何 出 口 規 定 ,可 以 自 由 用 於 任 何 國 家 和 行 星 .
任 何 人 無 需 授 權 即 可 在 任 何 計 算 機 系 統 上 使 用 此 軟 體 用 於 任 何 目 的 , 可 以 自 由 修 改 和 釋 出 , 但 要 遵 守 以 下 限 制 :
1. 作 者 對 使 用 此 軟 體 造 成 的 任 何 後 果 不 負 任 何 責 任 , 無 論 多 麼 嚴 重 , 即 使 這 些 後 果 是 由 於 軟 體 造 成 的 .
2. 禁 止 不 如 實 說 明 本 軟 體 的 來 源 , 無 論 是 明 確 說 錯 或 是 忽 略 . 由 於 很 少 有 使 用 者 讀 原 始 碼 , 所 以 在 檔 案 中 一 定 要 說 明 軟 體 來 源 .
3. 修 改 後 的 版 本 必 須 明 白 的 標 明 , 禁 止 將 其 作 為 原 始 軟 體 .由 於 很 少 有 使 用 者 讀 原 始 碼 , 所 以 在 檔 案 中 一 定 要 說 明 軟 體 來 源 .
4. 禁 止 刪 除 或 修 改 本 通 告 .
隨 同 本 包 釋 出 的 幾 個 支 援 檔 案 ( getopt , strtok )由 Henry Spencer完 成 , 同 樣 適 用 以 上 條 款 .
隨 同 本 包 釋 出 的 幾 個 支 援 檔 案 ( strtol , strchr )屬 於 公 共 域 的 ;都 做 了 標 記 .
檔 案 tar.h 和 is_tar.c 由 tar 程 式 組 的 John Gilmore完 成 ,無 需 遵 從 以 上 條 款 .
臭 蟲
必 定 存 在 一 種 更 好 的 方 法 來 根 據 Magdir中 的 glop來 自 動 建 立 Magic 檔 案 .是 什 麼 方 法 呢 ?要 更 好 的 實 現 , 那 麼 幻 數 檔 案 應 該 編 譯 成 二 進 位 制 (就 是 說 , ndbm (3) 或 者 , 在 異 種 網 路 環 境 中 採 用 定 長 的 ASCII 字 串 )來 加 快 啟 動 速 度 .這 樣 , 程 式 就 能 達 到 Version 7 中 的 file命 令 那 樣 的 執 行 速 度 ,同 時 又 具 有 System V 版 本 的 靈 活 性 .
File 使 用 的 一 些 演 算 法 雖 然 提 高 了 速 度 , 但 精 確 性 降 低 了 , 因 此 在 對 ASCII 檔 案 內 容 操 作 有 時 會 出 錯 .
對 ASCII 檔 案 的 支 援 (基 本 上 是 對 程 式 語 言 )過 於 簡 單 ,效 率 較 低 , 需 要 重 新 編 譯 並 更 新 .
在 一 系 列 連 續 行 後 應 該 跟 著 有 一 個 ‘‘else’’從 句 .
幻 數 檔 案 和 關 鍵 詞 應 該 有 正 則 表 示 式 的 支 援 . 使 用 ASCII TAB 作 為 分 隔 符 非 常 不 足 取 , 導 致 很 難 編 輯 檔 案 , 但 也 因 此 受 到 保 護 .
在 關 鍵 詞 中 使 用 大 寫 字 母 是 可 取 的 . 例 如 , troff (1) 命 令 與 檢 視 手 冊 頁 的 宏 . 正 則 表 示 式 支 援 將 使 這 易 於 實 現 .
本 程 式 沒 有 實 現 對 FORTRAN 的 理 解 . 應 該 能 夠 透 過 在 開 始 行 中 出 現 的 關 鍵 字 識 別 出 FORTRAN . 正 則 表 示 式 支 援 將 使 這 易 於 實 現 .
檔 案 ascmagic 中 的 關 鍵 詞 表 可 能 應 歸 入 Magic檔 案 . 這 能 透 過 使 用 象 ‘*’這 樣 的 關 鍵 詞 來 實 現 偏 移 量 .
另 一 個 最 佳 化 是 要 對 幻 數 檔 案 排 序 , 這 樣 , 我 們 就 可 以 在 取 得 第 一 個 位 元 , 第 一 個 詞 , 第 一 個 長 整 型 , 等 等 的 時 候 完 成 對 它 們 所 有 的 檢 查 .抱 怨 在 幻 數 檔 案 項 中 的 衝 突 .制 定 一 條 規 則 , 將 幻 數 項 在 檔 案 偏 移 量 的 基 礎 上 排 序 , 勝 過 在 幻 數 檔 案 裡 指 定 位 置 嗎 ?
本 程 式 應 提 供 一 種 方 法 來 評 價 一 種 猜 測 有 "多 麼 好 ". 我 們 去 除 了 一 些 先 前 的 設 想 (如 , 將 ‘‘From ’’ 作 為 檔 案 的 最 初 5個 字 元 ) 因 為 它 們 不 如 其 它 的 設 想 好 (如 , ‘‘Newsgroups:’’ 對 "Return-Path:"). 如 果 沒 有 其 它 的 設 想 提 出 , 就 很 可 能 會 採 納 第 一 種 設 想 .
本 程 式 比 某 些 file命 令 執 行 速 度 慢 .
本 手 冊 , 特 別 是 本 部 分 , 比 較 長 .
可 用 性
可 以 透 過 匿 名 FTP登 陸 到 ftp.astron.com 在 目 錄 下 /pub/file/file-X.YY.tar.gz 獲 得 作 者 的 命 令 的 最 新 版 本
[中 文 版 維 護 人 ]
姓 名 <email>
[中 文 版 最 新 更 新 ]
2001/07/15
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :
http://cmpp.linuxforum.net
跋
本
頁 面 中 文 版 由
中 文 man 手 冊 頁 計
劃 提 供 。
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh