.
部 信 息 .
-L
(在
支 持 符 號 鏈 接
的 系 統 上 )選 項
顯 示 符 號 鏈 接
文 件 的 原 文 件 ,
就 像 ls(1) 命 令 的
like-named 選 項 .
通 常 , file
只 是 試 圖 去 檢
查 在 文 件 列 表
中 那 些 stat(2) 報 告
爲 正 常 文 件 的
文 件 的 類 型 .由
於 讀 特 殊 文 件
將 可 能 導 致 不
可 知 後 果 , 所
以 這 樣 可 以 防
止 發 生 問 題 .使
用 -s 選 項 時 file
命 令 也 將 去 讀
文 件 列 表 中 的
塊 特 殊 文 件 和
字 符 特 殊 文 件 .
一 般 用 於 從 原
始 磁 盤 分 區 中
獲 得 文 件 系 統
類 型 , 此 文 件
爲 塊 特 殊 文 件 .
這 個 選 項 也 導
致 file 命 令 忽 略
stat(2) 報 告 的 文 件
大 小 , 因 爲 在
有 些 系 統 中 原
始 磁 盤 分 區 的
大 小 報 告 爲 0.
/usr/share/magic
- 默 認 的 幻 數 列
表
環 境 變
量 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
幻 數 文
件 項 主 要 是 從
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 [AT] sq.com, 郵 寄 地 址 : P.O. Box
603, Station F, Toronto, Ontario, CANADA M4Y 2L8. 由
Rob McMahon修 改 , cudcv [AT] warwick.uk, 1989,
並 對 ’&’操 作
符 進 行 了 擴 充
( 不 再 僅 僅 是
簡 單 的 ’x&y !=
0’, 而 是 象 ’x&y
op z’這 樣 ) . 由 Guy
Harris修 改 , guy [AT] 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 [AT] 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
http://cmpp.linuxforum.net
本 頁 面
中 文 版 由 中 文 man
手 冊 頁 計 劃 提
供 。 中 文 man 手 冊
頁 計 劃 :
https://github.com/man-pages-zh/manpages-zh
|