Provided by: manpages-zh_1.5.1-2_all bug

NAME

       file - 確定檔案類型

`覽
       file [ -bcnsvzL ] [ -f 命名檔案 ] [ -m 幻數檔案 ] file ...

yz
       本手冊飩〝了3.27版本    file    命令的使用.     File   命令試圖檢查每-
       荌捊H判定檔案的類型.
       檢查共有三組,按如下順序進行:檔案系統檢查,幻數檢查,以及語言檢查.
       t 檢查成市h輸出檔案類型.

       輸出的類型一般會包含以下的詞中的一荂G    text     (檔案中僅有     ASCII
       字符,可以用    ASCII   終端讀此檔案,以保証內容的可靠性),   executable
       (檔案中保存的是程式編譯後的結果,一些UNIX
       核心或其它核心能理解這類檔案),   或者   data  表示所有其它類型檔案(data
       一般為二進制檔案或者不可列印的).
       但是有的常用的檔案格式(如core檔案、tar包),雖然也包含二進制數據,
       卻不屬於這一類 如果n蚹 /usr/share/magic  或者程式本,  preserve  these
       keywords   .    當檔案為``text''   類型時,認為此檔案為可讀檔案.    不-
       n像在Berkeley環境中那樣做  -  n把``shell   commands   text''改為``shell
       script''.

       檔案系統檢查是建立在對          stat(2)         系統調用結果的分析上的.
       程式會分析檔案是否為空,或者是否是某種特殊檔案.
       對於所有可在現有系統上使用的檔案類型                          (比如套接
       口檔案,動態鏈接檔案,命名管道檔案(FIFOs)    等),    只n它在系統頭檔案
       sys/stat.h 中已經定義過,就可以被檢查到.

       幻數檢查用來檢查檔案中是否有特殊的固定格式的數據.
       規範的例子如二進制可執行檔案(編譯後的程式)                        a.out
       ,該檔案格式在標準include目錄下的  a.out.h  檔案中定義,也可能在  exec.h
       中定義.     這些檔案在檔案開始部分附近的一荅S殊位置保存有一'幻數'    ,
       通過幻數告訴UNIX                      作業系統此檔案是二進制可執行檔案,
       和其中包含的其它類型.
       幻數的概念已經擴展到數據檔案.任何在檔案固定位置有與檔案類型
       相關的不變標識符的檔案都可以這樣表示.  這些檔案中的信息可以  從幻數檔案
       /usr/share/magic 中讀取.

       如果檔案為       ASCII       檔案,       file       會試圖檢查它的語言.
       語言檢查在檔案開始的幾荈穭(任意位置)查找是否有特殊字符串(參看 names.h)
       例如,關鍵字  .br 指出此檔案很可能是 troff(1) 輸入檔案, 而關鍵字 struct
       指出此檔案是C程式.
       語言檢查不如前兩組檢查可靠,所以放在最後執行.它也用來檢查
       一些混合檔案(例如          tar(1)           存檔檔案)並確定檔案是`ascii
       text'類型還是`data'類型.

項
       -b      不輸出檔名 (簡n模式).

       -c      檢查時列印輸出幻數檔案的解析結果.常與                        -m
               一起使用,用來在安裝幻數檔案之前調試它.

       -fRW案
               從在參數表前的  RW   中讀出將n檢查的檔名(每行一蚗仵).n有
               RW       ,或者至少有一蚗犰W參數;      如果n檢查標準輸入,
               使用``-''作為檔案參數.

       -m list 指定包含幻數的檔案列表.可以是單蚗仵蛂A也可以是  用冒號分開的多-
               蚗仵.

       -n      每檢查完一蚗仵袨N強制刷新標準輸出.    僅在檢查一組檔案時才有效.
               一般在將檔案類型輸出到管道時才採用此選項.

       -v      列印程式版本並退出.

       -z      試圖查看壓縮檔案內部信息.

       -L      (在支持符號鏈接的系統上)選項顯示符號鏈接檔案的嚓仵, 就像 ls(1)
               命令的like-named 選項.

       -s      通常,      file      只是試圖去檢查在檔案列表中那些     stat(2)
               報告為正常檔案的檔案的類型.由於讀特殊檔案將可能導P
               不可知後果,所以這樣可以防止發生問題.使用    -s   選項時   file
               命令也將去讀檔案列表中的塊特殊檔案和字符特殊檔案.   一般用於從-
               鴝l磁碟分區中獲得檔案系統類型,此檔案為塊     特殊檔案.     這-
               蚇龠竣]導P           file           命令忽略            stat(2)
               報告的檔案大小,因為在有些系統中鴝l磁碟分區的大小報告為0.

案
       /usr/share/magic - 預設的幻數列表

ENVIRONMENT

       環境變量 MAGIC 用於設置預設的幻數檔案.

看
       magic(4) - 幻數檔案的格式.
       strings(1), od(1), hexdump(1) - 檢查非textfile的工具.

@Pfile(1)
       命令,但有所擴展.本版本與Sun的file命令差別不大.它包括對              `&'
       操作符的擴展,例如,
       >16  long&0x7fffffff     >0        not stripped

MAGIC DIRECTORY

       幻數檔案項主n是從USENET收集來的,釵h人都為此作出了貢獻.  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

v
       There     has     been     a      file      命令至少是從研究版本6(手冊-
       雅伅′1975年1月)開始加入UNIX中的.      System     V    版本引入了一茷-
       n變化:幻數類型的外部表.程式的運 行時間有輕微下,  但是復雜性大大增加了.

       本程式是基於System V 版本的,由Ian Darwin獨立設p和編寫.

       John     Gilmore對鴝l碼做了較大蚹,在第一版基礎上有較大提高.      Geoff
       Collyer發現了一些不足之處,並提供了一些幻數檔案項.  本程式一直在完善中.

@者
       由Ian  F. Darwin寫鴝l碼, 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的蚹儮麍Y些情況沒有考慮到;

              引入多級`>';

              引入``beshort'',                                    ``leshort'',
              等關鍵字使得程式能夠按照一定的比特順序
              查看檔案中的比特數,而不是僅按運行 file 時的本地比特順序查看.

       由Ian  Darwin和其他作者(包括Christos Zoulas(christos@astron.com))蚹,
       1990-1999.

Xkqi
       版權所屬 (c) Ian F. Darwin, Toronto, Canada, 1986,  1987,  1988,  1989,
       1990, 1991, 1992, 1993.

       本軟體獨立於美國電話電報公司,Sun微系統公司,Digital設備公司,
       Lotus發展公司 ,  California大學董事會,X聯盟或者MIT,或者自由軟體基金會.

       本軟體獨立於美國商業部的任何出口規定,可以自由用於任何國家和行星.

       任何人無需授權即可在任何電腦系統上使用此軟體用於任何目的,    可以自由-
       蚹鴭M發佈,但n遵守以下制:

       1.             作者對使用此軟體造成的任何後果不t任何責任,無論多麼嚴哄A
       即使這些後果是由於軟體造成的.

       2.                  禁止不如實說明本軟體的來源,無論是明確說錯或是忽略.
       由於很少有使用者讀鴝l碼, 所以在檔案中一定n說明軟體來源.

       3.   蚹麉嶊漯岩誑眸楨白的標明,禁止將其作為鴝l軟體.由於很少有使用者讀-
       鴝l碼, 所以在檔案中一定n說明軟體來源.

       4. 禁止刪除或蚹鴷輒q告.

       隨同本包發佈的幾茪銕钀仵(getopt,            strtok)由            Henry
       Spencer完成,同樣適用以上條款.

       隨同本包發佈的幾茪銕钀仵(strtol, strchr)屬於公共域的;都做了標記.

       檔案     tar.his_tar.ctar      程式組的John
       Gilmore完成,無需遵從以上條款.

蟲
       必定存在一種更好的方法來根據Magdir中的glop來自動創建Magic
       檔案.是什麼方法呢?n更好的實現,那麼幻數檔案應該編譯成二進制   (就是說,
       ndbm(3)          或者,         在異種網路環境中採用定長的         ASCII
       字符串)來加快啟動速度.這樣,程式就能達到Version         7          中的
       file命令那樣的運行速度,同時又具有System V 版本的靈活性.

       File   使用的一些算法雖然提高了速度,但精確性飢C了,因此   在對   ASCII
       檔案內容操作有時會出錯.

       對     ASCII      檔案的支持(基本上是對編程語言)過於簡單,效率較低,需n-
       奐s編譯並更新.

       在一系列連續行後應該跟著有一罛`else''從句.

       幻數檔案和關鍵詞應該有正則表達式的支持.        使用      ASCII      TAB
       作為分隔符非常不足取,導P很難編輯檔案, 但也因此受到保護.

       在關鍵詞中使用大寫字母是可取的.   例如,  troff(1)  命令與查看手冊隍漣.
       正則表達式支持將使這易於實現.

       本程式沒有實現對                     FORTRAN                    的理解.
       應該能夠通過在開始行中出現的關鍵字識別出FORTRAN                       .
       正則表達式支持將使這易於實現.

       檔案              ascmagic             中的關鍵詞表可能應歸入Magic檔案.
       這能通過使用像`*'這樣的關鍵詞來實現偏移量.

       另一蚗u化是n對幻數檔案排序,這樣,我抴N可以      在取得第一茪騏S,第一-
       茧,第一茠蠷舕活A等等的時唭髡                                   對它-
       怍狾釭瑰邠d.抱怨在幻數檔案項中的沖突.制定一條規則,
       將幻數項在檔案偏移量的基礎上排序,勝過在幻數檔案裏指定位置嗎?

       本程式應提供一種方法來評價一種猜測有"多麼好".                       我-
       怚h除了一些先前的設想(如,將 ``From  ''  作為檔案的最初5茼r符)  因為它-
       怳ㄕp其它的設想好(如,``Newsgroups:''                對"Return-Path:").
       如果沒有其它的設想提出,就很可能會採納第一種設想.

       本程式比某些file命令執行速度慢.

       本手冊,特別是本部分,比較長.

i性
       可以通過匿名FTP登陸到    ftp.astron.com    在目錄下     /pub/file/file-
       X.YY.tar.gz 獲得作者的命令的最新版本

[]
      mW <email>

[]
       2001/07/15

mlinuxan:
       http://cmpp.linuxforum.net

                          Copyright but distributable                  FILE(1)