十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
file
在做網(wǎng)站、網(wǎng)站設(shè)計(jì)過程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)建站還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。
判斷指定文件的文件類型,它依據(jù)文件內(nèi)容判斷,并不依據(jù)擴(kuò)展名。此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1 、語(yǔ)法
file [ 選項(xiàng)] filename
2 、選項(xiàng)列表
選項(xiàng) |
說明 |
-v | --version |
顯示命令版本信息 |
--help |
顯示幫助文檔 |
-b | --brief |
列出結(jié)果的時(shí)候,不顯示文件名 |
-C | --compile |
編寫一個(gè)magic.mgc輸出文件,其中包含魔術(shù)文件或目錄的預(yù)解析版本 |
-c | --checking-printout |
以檢查魔術(shù)文件的解析形式的打印輸出。這通常與-m標(biāo)志一起使用,用于在安裝新的魔術(shù)文件之前調(diào)試它。 |
-e | --exclude testname |
從確定文件類型的測(cè)試列表中排除在testname中指定的測(cè)試。有效的測(cè)試名稱是: apptype ,EMX應(yīng)用程序類型(僅在EMX上)。 text ,各種類型的文本文件(此測(cè)試將嘗試猜測(cè)文本編碼,而不管“編碼”選項(xiàng)的設(shè)置如何) encoding ,用于軟魔術(shù)測(cè)試的不同文本編碼 tokens ,在文本文件中查找已知的令牌 cdf ,打印復(fù)合文檔文件的詳細(xì)信息 compress ,檢查并查看壓縮文件 elf ,打印ELF文件的細(xì)節(jié)。 soft ,查閱魔法檔案。 tar ,檢查tar文件 |
-F | --separator |
指定文件名和結(jié)果之間的分隔符,默認(rèn): |
-f namefile | --files-from namefile |
從給定的文件中,讀取文件名,然后操作 |
-h | --no-dereference |
選項(xiàng)導(dǎo)致符號(hào)鏈接不被遵循(在支持符號(hào)鏈接的系統(tǒng)上)。如果沒有定義環(huán)境變量POSIXLY_TRIDER,則這是默認(rèn)的 |
-i | --mime |
導(dǎo)致文件命令輸出MIME類型字符串,而不是更傳統(tǒng)的人類可讀的字符串。因此,它可以說‘text/plain;;charset=us-ascii’而不是‘ASCII文本’。為了使此選項(xiàng)工作,文件更改了它處理命令本身識(shí)別的文件的方式(例如許多文本文件類型、目錄等),并使用了另一個(gè)“魔術(shù)”文件。(見下文檔案部分) |
--mime-type | --mime-encoding |
類似-i,但只打印指定的元素。 |
k | --keep-going |
第一次匹配別停,繼續(xù)。隨后的匹配將具有字符串‘\012-’。(如果需要換行符,請(qǐng)參見‘-r’選項(xiàng)。) |
-L | --dereference |
選項(xiàng)導(dǎo)致符號(hào)鏈接被遵循,就像ls(1)中的同名選項(xiàng)(在支持符號(hào)鏈接的系統(tǒng)上)。如果定義了環(huán)境變量POSIXLY_TRIDER,則這是默認(rèn)的 |
-m | --magic-file magicfiles |
指定包含魔術(shù)的文件和目錄的備用列表。這可以是單個(gè)項(xiàng)目,也可以是冒號(hào)分隔的列表。如果在文件或目錄旁邊找到已編譯的魔術(shù)文件,則將使用它。 |
-N | --no-pad |
讓文件名在輸出中對(duì)齊 |
-n | --no-buffer |
檢查每個(gè)文件后,強(qiáng)迫stdout被刷新。這只有在檢查文件列表時(shí)才有用。它用于希望從管道輸出文件類型的程序。 |
-p | --preserve-date |
在支持utime(2)或utime(2)的系統(tǒng)上,嘗試保留分析過的文件的訪問時(shí)間,假裝文件從未讀取過它們。 |
-r | --raw |
不要將不可打印的字符翻譯為\ooo。通常,文件將不可打印的字符轉(zhuǎn)換為它們的八進(jìn)制表示形式 |
-s | --special-files |
通常,文件只嘗試讀取和確定STAT(2)報(bào)告是普通文件的參數(shù)文件的類型。這可以防止出現(xiàn)問題,因?yàn)樽x取特殊文件可能會(huì)產(chǎn)生特殊的后果。指定-s選項(xiàng)會(huì)導(dǎo)致file也讀取參數(shù)文件,這些參數(shù)文件是塊文件或字符特殊文件。這對(duì)于確定原始磁盤分區(qū)中數(shù)據(jù)的文件系統(tǒng)類型非常有用,這些分區(qū)是塊特殊文件。此選項(xiàng)還會(huì)導(dǎo)致文件忽略stat(2)所報(bào)告的文件大小,因?yàn)樵谀承┫到y(tǒng)上,它報(bào)告原始磁盤分區(qū)的大小為零。 |
-z | --uncompress |
試著查看壓縮文件 |
-0 | --print0 |
在文件名結(jié)束后輸出空字符‘\0’。很好地削減了產(chǎn)量。這不影響仍然打印的分隔符。 |
-z |
嘗試讀取壓縮文件的內(nèi)容 |
3 、說明
file 對(duì)每個(gè)參數(shù)進(jìn)行測(cè)試,試圖對(duì)其進(jìn)行分類。按照這個(gè)順序執(zhí)行的測(cè)試有三組:文件系統(tǒng)測(cè)試、魔術(shù)測(cè)試和語(yǔ)言測(cè)試。成功的第一個(gè)測(cè)試將導(dǎo)致打印文件類型。打印的類型通常包含一個(gè)單詞text(該文件只包含打印字符和幾個(gè)常見的控制字符,并可能安全地在ASCII終端上讀取)、executable (該文件包含以某種UNIX內(nèi)核可以理解的形式編譯程序的結(jié)果),或包含任何其他含義的data(數(shù)據(jù)通常是“二進(jìn)制”或不可打印的)。異常是眾所周知的包含二進(jìn)制數(shù)據(jù)的文件格式(核心文件、tar存檔).在修改魔術(shù)文件或程序本身時(shí),請(qǐng)確保保留這些關(guān)鍵字。用戶依賴于知道目錄中的所有可讀文件都打印了單詞“text”。不要像Berkeley那樣,把“shell命令文本”改為“shell腳本”
文件系統(tǒng)測(cè)試基于檢查STAT(2)系統(tǒng)調(diào)用的返回。該程序檢查該文件是否為空文件,或是否為某種特殊文件。如果在系統(tǒng)頭文件中定義了適合您正在運(yùn)行的系統(tǒng)的任何已知文件類型(套接字、符號(hào)鏈接或有名管道),則會(huì)直觀地顯示它們。
魔術(shù)測(cè)試用于檢查具有特定固定格式的數(shù)據(jù)的文件。這方面的典型示例是二進(jìn)制可執(zhí)行文件(已編譯的程序)a.out文件,其格式在標(biāo)準(zhǔn)include目錄中的#include
如果文件與魔術(shù)文件中的任何條目不匹配,則檢查它是否為文本文件。ASCII、ISO-8859-x、非ISO 8位擴(kuò)展-ASCII字符集(例如在Macintosh和IBM PC系統(tǒng)上使用的字符集)、UTF-8編碼Unicode、UTF-16編碼Unicode和EBCDIC字符集可以通過構(gòu)成每組可打印文本的不同范圍和字節(jié)序列來區(qū)分。如果一個(gè)文件通過了這些測(cè)試中的任何一個(gè),就會(huì)報(bào)告它的字符集。ASCII、ISO-8859-x、UTF-8和Extended-ASCII文件被識(shí)別為“Text”,因?yàn)樗鼈冊(cè)趲缀跞魏谓K端上都是可讀的;UTF-16和EBCDIC僅僅是“字符數(shù)據(jù)”,因?yàn)樗鼈儼谋?,但是文本需要翻譯才能被讀取。此外,文件將試圖確定文本類型文件的其他特征.如果文件的行被CR、CRLF或Nel終止,而不是Unix標(biāo)準(zhǔn)LF,這將被報(bào)告。還將識(shí)別包含嵌入轉(zhuǎn)義序列或過度醒目的文件。
一旦文件確定了在文本類型文件中使用的字符集,它將試圖確定該文件是用哪種語(yǔ)言編寫的。語(yǔ)言測(cè)試尋找特定的字符串(Cf. #include
任何無法標(biāo)識(shí)為已在上述任何字符集中寫入的文件,都被簡(jiǎn)單地稱為“data”。
4 、環(huán)境變量
環(huán)境變量MAGIC可以用來設(shè)置默認(rèn)的魔術(shù)文件名。如果設(shè)置了該變量,那么文件將不會(huì)嘗試打開$HOME/.magic。文件酌情將‘.mgc’添加到此變量的值中。環(huán)境變量POSIXLY_RIDER控制(在支持符號(hào)鏈接的系統(tǒng)上),文件是否會(huì)嘗試遵循符號(hào)鏈接。如果設(shè)置了,那么文件將遵循符號(hào)鏈接,否則就不會(huì)。這也是由-l和-h選項(xiàng)控制的。
5 、返回值
文件在成功時(shí)返回0,在錯(cuò)誤時(shí)返回非零。如果文件操作數(shù)命名的文件不存在,無法讀取,或者無法確定由文件操作數(shù)命名的文件的類型,則不認(rèn)為這是影響退出狀態(tài)的錯(cuò)誤。
6 、文件
/usr/share/misc/magic.mgc ,默認(rèn)已編譯魔術(shù)列表。
/usr/share/misc/magic ,包含默認(rèn)魔術(shù)文件的目錄。
7 、實(shí)例
1 )直接查看文件
|
2 )從給定文件中讀取文件名,然后進(jìn)行操作
|
3 )讀取特殊文件的類型
|
4 )以MIME格式輸出
|