• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            中文man手冊(cè):file--確定文件類型

            Posted on 2009-03-13 10:41 Prayer 閱讀(437) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Shell 、LINUX/UNIX/AIX

            FILE

            Section: User Commands (1)
            Updated: Copyright but distributable

             

            名稱

            file - 確定文件類型  

            總覽

            file [ -bcnsvzL ] [ -f 命名文件 ] [ -m 幻數(shù)文件 ] file ...  

            描述

            本手冊(cè)頁(yè)說(shuō)明了3.27版本 file 命令的使用. File 命令試圖檢查每個(gè)參數(shù)以判定文件的類型. 檢查共有三組,按如下順序進(jìn)行:文件系統(tǒng)檢查,幻數(shù)檢查,以及語(yǔ)言檢查. 文件系統(tǒng) 檢查成功則輸出文件類型.

            輸出的類型一般會(huì)包含以下的詞中的一個(gè): text (文件中僅有 ASCII 字符,可以用 ASCII 終端讀此文件,以保證內(nèi)容的可靠性), executable (文件中保存的是程序編譯后的結(jié)果,一些UNIX 內(nèi)核或其它內(nèi)核能理解這類文件), 或者 data 表示所有其它類型文件(data 一般為二進(jìn)制文件或者不可打印的). 但是有的常用的文件格式(如core文件、tar包),雖然也包含二進(jìn)制數(shù)據(jù),卻不屬于這一類如果要修改 /usr/share/magic 或者程序本身, preserve these keywords . 當(dāng)文件為``text'' 類型時(shí),認(rèn)為此文件為可讀文件. 不要象在Berkeley環(huán)境中那樣做 - 要把``shell commands text''改為``shell script''.

            文件系統(tǒng)檢查是建立在對(duì) stat(2) 系統(tǒng)調(diào)用結(jié)果的分析上的. 程序會(huì)分析文件是否為空,或者是否是某種特殊文件. 對(duì)于所有可在現(xiàn)有系統(tǒng)上使用的文件類型 (比如套接口文件,動(dòng)態(tài)鏈接文件,命名管道文件(FIFOs) 等),只要它在系統(tǒng)頭文件 sys/stat.h 中已經(jīng)定義過(guò),就可以被檢查到.

            幻數(shù)檢查用來(lái)檢查文件中是否有特殊的固定格式的數(shù)據(jù). 規(guī)范的例子如二進(jìn)制可執(zhí)行文件(編譯后的程序) a.out ,該文件格式在標(biāo)準(zhǔn)include目錄下的 a.out.h 文件中定義,也可能在 exec.h 中定義. 這些文件在文件開(kāi)始部分附近的一個(gè)特殊位置保存有一個(gè)'幻數(shù)' , 通過(guò)幻數(shù)告訴UNIX 操作系統(tǒng)此文件是二進(jìn)制可執(zhí)行文件, 和其中包含的其它類型. 幻數(shù)的概念已經(jīng)擴(kuò)展到數(shù)據(jù)文件.任何在文件固定位置有與文件類型相關(guān)的不變標(biāo)識(shí)符的文件都可以這樣表示. 這些文件中的信息可以從幻數(shù)文件 /usr/share/magic 中讀取.

            如果文件為 ASCII 文件, file 會(huì)試圖檢查它的語(yǔ)言. 語(yǔ)言檢查在文件開(kāi)始的幾個(gè)塊中(任意位置)查找是否有特殊字符串(參看 names.h) .br 指出此文件很可能是 troff(1) 輸入文件, 而關(guān)鍵字 struct 指出此文件是C程序. 語(yǔ)言檢查不如前兩組檢查可靠,所以放在最后執(zhí)行.它也用來(lái)檢查一些混合文件(例如 tar(1) 存檔文件)并確定文件是`ascii text'類型還是`data'類型.  

            選項(xiàng)

            -b
            不輸出文件名 (簡(jiǎn)要模式).
            -c
            檢查時(shí)打印輸出幻數(shù)文件的解析結(jié)果.常與 -m 一起使用,用來(lái)在安裝幻數(shù)文件之前調(diào)試它.
            -f 命名文件
            從在參數(shù)表前的 命名文件 中讀出將要檢查的文件名(每行一個(gè)文件).要有 命名文件 ,或者至少有一個(gè)文件名參數(shù); 如果要檢查標(biāo)準(zhǔn)輸入, 使用``-''作為文件參數(shù).
            -m list
            指定包含幻數(shù)的文件列表.可以是單個(gè)文件,也可以是用冒號(hào)分開(kāi)的多個(gè)文件.
            -n
            每檢查完一個(gè)文件就強(qiáng)制刷新標(biāo)準(zhǔn)輸出. 僅在檢查一組文件時(shí)才有效. 一般在將文件類型輸出到管道時(shí)才采用此選項(xiàng).
            -v
            打印程序版本并退出.
            -z
            試圖查看壓縮文件內(nèi)部信息.
            -L
            (在支持符號(hào)鏈接的系統(tǒng)上)選項(xiàng)顯示符號(hào)鏈接文件的原文件, 就像 ls(1) 命令的like-named 選項(xiàng).
            -s
            通常, file 只是試圖去檢查在文件列表中那些 stat(2) 報(bào)告為正常文件的文件的類型.由于讀特殊文件將可能導(dǎo)致不可知后果,所以這樣可以防止發(fā)生問(wèn)題.使用 -s 選項(xiàng)時(shí) file 命令也將去讀文件列表中的塊特殊文件和字符特殊文件. 一般用于從原始磁盤(pán)分區(qū)中獲得文件系統(tǒng)類型,此文件為塊特殊文件. 這個(gè)選項(xiàng)也導(dǎo)致 file 命令忽略 stat(2) 報(bào)告的文件大小,因?yàn)樵谟行┫到y(tǒng)中原始磁盤(pán)分區(qū)的大小報(bào)告為0.
             

            文件

            /usr/share/magic - 默認(rèn)的幻數(shù)列表  

            ENVIRONMENT

            環(huán)境變量 MAGIC 用于設(shè)置默認(rèn)的幻數(shù)文件.  

            參看

            magic(4) - 幻數(shù)文件的格式.
            strings(1), od(1), hexdump(1) - 檢查非textfile的工具.  

            標(biāo)準(zhǔn)的一致性

            本程序比System V 的FILE命令強(qiáng)大, 幾乎能分辨出所有的模糊語(yǔ)言. 與System V 的FILE命令大部分兼容.本版本能識(shí)別更多的magic, 但是,也將因此在有些情況下會(huì)產(chǎn)生不同輸出(盡管更加精確).

            本版本與System V的顯著區(qū)別就是本版本對(duì)空格是作為分隔符來(lái)處理的, 所以不能在格式字符串中包含空格. 例如,現(xiàn)有幻數(shù)文件中的
            >10    string  language impress        (imPRESS data)

            要改為
            >10    string  language\ impress       (imPRESS data)

            另外, 格式字符串中的反斜線符號(hào)也要避免.例如,現(xiàn)有幻數(shù)文件中的
            0      string          \begindata      Andrew Toolkit document

            要改為
            0      string          \\begindata     Andrew Toolkit document

            SunOS releases 3.2及以后的版本包括從System V 發(fā)展來(lái)的 file(1) 命令,但有所擴(kuò)展.本版本與Sun的file命令差別不大.它包括對(duì) `&' 操作符的擴(kuò)展,例如,
            >16    long&0x7fffffff >0              not stripped
             

            MAGIC DIRECTORY

            幻數(shù)文件項(xiàng)主要是從USENET收集來(lái)的,許多人都為此作出了貢獻(xiàn). Christos Zoulas (下邊將提到的)將收集附加項(xiàng)信息及修正幻數(shù)文件項(xiàng). 幻數(shù)文件項(xiàng)的合并表將會(huì)定時(shí)發(fā)布.

            幻數(shù)文件項(xiàng)的順序非常重要.不同的系統(tǒng)上的幻數(shù)項(xiàng)放的順序可能不同. 如果老的 file 命令使用幻數(shù)文件,請(qǐng)將舊的幻數(shù)文件改名保存, (如改為 /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(手冊(cè)頁(yè)時(shí)間為1975年1月)開(kāi)始加入U(xiǎn)NIX中的. System V 版本引入了一個(gè)重要變化:幻數(shù)類型的外部表.程序的運(yùn)行時(shí)間有輕微下降, 但是復(fù)雜性大大增加了.

            本程序是基于System V 版本的,由Ian Darwin獨(dú)立設(shè)計(jì)和編寫(xiě).

            John Gilmore對(duì)源代碼做了較大修改,在第一版基礎(chǔ)上有較大提高. Geoff Collyer發(fā)現(xiàn)了一些不足之處,并提供了一些幻數(shù)文件項(xiàng). 本程序一直在完善中.  

            作者

            由Ian F. Darwin寫(xiě)源碼, 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, 并對(duì)`&'操作符進(jìn)行了擴(kuò)充(不再僅僅是簡(jiǎn)單的 `x&y != 0',而是象`x&y op z'這樣).

            由Guy Harris修改, guy@netapp.com, 1993,完成:

            恢復(fù)``old-style'' `&' 操作符為原來(lái)的功能,因?yàn)?1) Rob McMahon所做的修改打破了原來(lái)的使用方式, 2) 本版本的 file 命令支持的SunOS 的``new-style'' `&' 操作符也處理 `x&y op z', 3) Rob的修改對(duì)某些情況沒(méi)有考慮到;

            引入多級(jí)`>';

            引入``beshort'', ``leshort'', 等關(guān)鍵字使得程序能夠按照一定的比特順序查看文件中的比特?cái)?shù),而不是僅按運(yùn)行 file 時(shí)的本地比特順序查看.

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

            合法性通告

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

            本軟件獨(dú)立于美國(guó)電話電報(bào)公司,Sun微系統(tǒng)公司,Digital設(shè)備公司, Lotus發(fā)展公司 , California大學(xué)董事會(huì),X聯(lián)盟或者M(jìn)IT,或者自由軟件基金會(huì).

            本軟件獨(dú)立于美國(guó)商業(yè)部的任何出口規(guī)定,可以自由用于任何國(guó)家和行星.

            任何人無(wú)需授權(quán)即可在任何計(jì)算機(jī)系統(tǒng)上使用此軟件用于任何目的,可以自由修改和發(fā)布,但要遵守以下限制:

            1. 作者對(duì)使用此軟件造成的任何后果不負(fù)任何責(zé)任,無(wú)論多么嚴(yán)重,即使這些后果是由于軟件造成的.

            2. 禁止不如實(shí)說(shuō)明本軟件的來(lái)源,無(wú)論是明確說(shuō)錯(cuò)或是忽略. 由于很少有用戶讀源碼, 所以在文件中一定要說(shuō)明軟件來(lái)源.

            3. 修改后的版本必須明白的標(biāo)明,禁止將其作為原始軟件.由于很少有用戶讀源碼, 所以在文件中一定要說(shuō)明軟件來(lái)源.

            4. 禁止刪除或修改本通告.

            隨同本包發(fā)布的幾個(gè)支持文件(getopt, strtok)由 Henry Spencer完成,同樣適用以上條款.

            隨同本包發(fā)布的幾個(gè)支持文件(strtol, strchr)屬于公共域的;都做了標(biāo)記.

            文件 tar.h 和 is_tar.c 由 tar 程序組的John Gilmore完成,無(wú)需遵從以上條款.  

            臭蟲(chóng)

            必定存在一種更好的方法來(lái)根據(jù)Magdir中的glop來(lái)自動(dòng)創(chuàng)建Magic 文件.是什么方法呢?要更好的實(shí)現(xiàn),那么幻數(shù)文件應(yīng)該編譯成二進(jìn)制 (就是說(shuō), ndbm(3) 或者, 在異種網(wǎng)絡(luò)環(huán)境中采用定長(zhǎng)的 ASCII 字符串)來(lái)加快啟動(dòng)速度.這樣,程序就能達(dá)到Version 7 中的 file命令那樣的運(yùn)行速度,同時(shí)又具有System V 版本的靈活性.

            File 使用的一些算法雖然提高了速度,但精確性降低了,因此在對(duì) ASCII 文件內(nèi)容操作有時(shí)會(huì)出錯(cuò).

            對(duì) ASCII 文件的支持(基本上是對(duì)編程語(yǔ)言)過(guò)于簡(jiǎn)單,效率較低,需要重新編譯并更新.

            在一系列連續(xù)行后應(yīng)該跟著有一個(gè)``else''從句.

            幻數(shù)文件和關(guān)鍵詞應(yīng)該有正則表達(dá)式的支持. 使用 ASCII TAB 作為分隔符非常不足取,導(dǎo)致很難編輯文件, 但也因此受到保護(hù).

            在關(guān)鍵詞中使用大寫(xiě)字母是可取的. 例如, troff(1) 命令與查看手冊(cè)頁(yè)的宏. 正則表達(dá)式支持將使這易于實(shí)現(xiàn).

            本程序沒(méi)有實(shí)現(xiàn)對(duì) FORTRAN 的理解. 應(yīng)該能夠通過(guò)在開(kāi)始行中出現(xiàn)的關(guān)鍵字識(shí)別出FORTRAN . 正則表達(dá)式支持將使這易于實(shí)現(xiàn).

            文件 ascmagic 中的關(guān)鍵詞表可能應(yīng)歸入Magic文件. 這能通過(guò)使用象`*'這樣的關(guān)鍵詞來(lái)實(shí)現(xiàn)偏移量.

            另一個(gè)優(yōu)化是要對(duì)幻數(shù)文件排序,這樣,我們就可以在取得第一個(gè)比特,第一個(gè)詞,第一個(gè)長(zhǎng)整型,等等的時(shí)候完成對(duì)它們所有的檢查.抱怨在幻數(shù)文件項(xiàng)中的沖突.制定一條規(guī)則,將幻數(shù)項(xiàng)在文件偏移量的基礎(chǔ)上排序,勝過(guò)在幻數(shù)文件里指定位置嗎?

            本程序應(yīng)提供一種方法來(lái)評(píng)價(jià)一種猜測(cè)有"多么好". 我們?nèi)コ艘恍┫惹暗脑O(shè)想(如,將 ``From '' 作為文件的最初5個(gè)字符) 因?yàn)樗鼈儾蝗缙渌脑O(shè)想好(如,``Newsgroups:'' 對(duì)"Return-Path:"). 如果沒(méi)有其它的設(shè)想提出,就很可能會(huì)采納第一種設(shè)想.

            本程序比某些file命令執(zhí)行速度慢.

            本手冊(cè),特別是本部分,比較長(zhǎng).  

            可用性

            可以通過(guò)匿名FTP登陸到 ftp.astron.com 在目錄下 /pub/file/file-X.YY.tar.gz 獲得作者的命令的最新版本 (http://www.fanqiang.com)     進(jìn)入【UNIX論壇
            伊人色综合九久久天天蜜桃| 国产AV影片久久久久久| 亚洲欧美一级久久精品| 无码日韩人妻精品久久蜜桃| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久精品国产WWW456C0M| 2019久久久高清456| 久久久噜噜噜久久熟女AA片| 国内精品久久久久久久涩爱| 亚洲国产精品无码久久SM | 久久久久成人精品无码| 精品人妻久久久久久888| 日本亚洲色大成网站WWW久久| 国产精品久久久久国产A级| 伊人色综合久久天天网 | 三上悠亚久久精品| 一级做a爰片久久毛片看看| 久久久久四虎国产精品| 亚洲国产欧洲综合997久久| 久久青青草原精品国产软件| 久久被窝电影亚洲爽爽爽| 一本色道久久88精品综合| 青青久久精品国产免费看| 国产香蕉97碰碰久久人人| 国产精品久久午夜夜伦鲁鲁| 人妻久久久一区二区三区| 99久久精品免费看国产| 国产美女亚洲精品久久久综合| 91精品国产色综久久| 久久国产热精品波多野结衣AV| 久久久国产视频| 四虎国产精品免费久久| 日韩va亚洲va欧美va久久| 国内精品久久久久久中文字幕| 久久99国产精品久久久| 婷婷综合久久中文字幕| 国产成人久久精品一区二区三区| 久久青青草原亚洲av无码app| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 亚洲午夜久久影院| 国产精品久久国产精麻豆99网站|