日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux命令file的案例說明

Linux愛好者 ? 來源:C語言中文網(wǎng) ? 作者:C語言中文網(wǎng) ? 2020-12-24 11:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有人的地方,就有江湖。人往往是最難揣摩的。如果有一面神奇的魔鏡能看出一個人的內(nèi)心,世界會不會變得更加美好呢?

Linux 的世界里,file 就是這樣一面魔鏡,它可以看到每個文件的內(nèi)心。file 命令可以識別出文件的類型和編碼格式,這是其他命令所做不到的。

查看文件類型

開門見山,我們直接用 file 這面魔鏡來看看文件的“內(nèi)心”。

#不加任何選項, 直接查看poetry文件[roc@roclinux ~]$ file poetry.txtpoetry.txt: ASCII text

使用不帶任何選項的 file 命令,即可查看指定文件的類型信息。

在上面的例子中可以看出 poetry.txt 的文件類型為 text,編碼格式為 ASCII。

#使用-b選項來查看poetry文件[roc@roclinux ~]$ file -b poetry.txtASCII text

上面的例子中,我們使用了-b選項,可以使 file 命令的輸出不出現(xiàn)文件名,只顯示文件格式以及編碼。

#使用-i選項來查看poetry文件[roc@roclinux ~]$ file -i poetry.txtpoetry.txt: text/plain; charset=us-ascii

上面的例子中,我們使用了-i選項,可以輸出文件的 MIME 類型字符串。

小科普,MIME 類型,即 Multipurpose Internet Mail Extensions,稱為多用途互聯(lián)網(wǎng)郵件擴展類型,用來標識和記錄文件的打開方式,一些常見的類型包括:

text/plain:普通文本。

text/html:HTML文本。

application/pdf:PDF文檔。

application/msword:Word文檔。

image/png:PNG圖片。

mage/jpeg:JPEG圖片。

application/x-tar:TAR文件。

application/x-gzip:GZIP文件。

設(shè)置輸出分隔符

從上面的例子可以看出,file 命令的輸出格式是:

文件名:文件類型和編碼格式

如果希望將中間的分隔符由冒號(:)改成其他符號,則可以使用-F選項來實現(xiàn)。

[roc@roclinux ~]$ file poetry.txtpoetry.txt: ASCII text [roc@roclinux ~]$ file -F “=》” poetry.txtpoetry.txt=》 ASCII text

有些同學會問,這樣的功能有何意義呢?在一些自動化文件分析的腳本中,開發(fā)者為了避免分隔符和普通字符重復(fù)而造成誤解析的情況,通常是會手工調(diào)整間隔符的。

查看軟鏈接文件

file 命令能查看所有文件的類型信息,那么問題來了,對于一個軟鏈接文件,file 命令是返回軟鏈接文件本身的類型信息,還是返回軟鏈接所指向的目標文件的類型信息呢?讓我們通過試驗得出結(jié)論吧:

#新建一個軟鏈接文件[roc@roclinux ~]$ ln -s poetry.txt poetry_s.txt #通過file命令查看軟鏈接文件[roc@roclinux ~]$ file poetry_s.txtpoetry_s.txt: symbolic link to `poetry.txt‘ #使用-L選項來查看軟鏈接文件[roc@roclinux ~]$ file -L poetry_s.txtpoetry_s.txt: ASCII text

試驗是找到真相的最好方法。通過上面的示例,我們已經(jīng)很清楚地看到了:

如果通過 file 命令直接查看軟鏈接文件,則查看的就是軟鏈接文件本身的信息。

如果使用-L選項來查看軟鏈接文件,則查看的是軟鏈接指向的目標文件的信息。

按照清單去工作

如果我們需要用 file 命令查看大量文件的類型信息,恰好這些文件的名稱都被存儲在了一個文本文件中,那么-f選項就派上用場了。

我們可以通過-f選項來指定這個文本文件,file 命令就會乖乖地去逐個查看每一個文件的類型信息,示例如下:

#文件中含有三個待查文件, 我們故意設(shè)置了一個不存在的文件, 位于最后一個[roc@roclinux ~]$ cat poetry_list.txt/root/book/poetry.txt /root/book/poetry_s.txt Nothing.txt #使用-f選項執(zhí)行file命令[roc@roclinux ~]$ file -f poetry_list.txt/root/book/poetry.txt: ASCII text/root/book/poetry_s.txt: symbolic link to `poetry.txt’Nothing.txt: ERROR: cannot open `Nothing.txt ‘ (No such file or directory)在上面的例子中,poetry_list.txt 包含了 3 行內(nèi)容:

poetry.txt。

指向poetry.txt的軟鏈接poetry_s.txt。

Nothing.txt,一個明顯不存在的文件。

從結(jié)果可以看出,前兩個如期輸出了類型信息,最后一個也如期報了錯誤。

-z 選項,想說愛你不容易

一次偶然的機會,我在 man file 中發(fā)現(xiàn)了-z選項,原文解釋是“Try to look inside compressed files”,看來 file 還可以查看壓縮文件內(nèi)部的文件。

那為什么要用“Try to”這樣的字樣呢,為了弄明白這個細節(jié),于是,我的試驗開始了。

第一輪試驗開始,我們先來試驗“一個未經(jīng)壓縮的 tar 包”:

#制作一個未經(jīng)壓縮的tar包[roc@roclinux ~]$ tar -cvf poetry.tar poetry.txt poetry_s.txtpoetry.txt poetry_s.txt #嘗試使用-z選項[roc@roclinux ~]$ file -z poetry.tarpoetry.tar: POSIX tar archive (GNU)

似乎并不盡如人意,file 只是看出 poetry.tar 是一個 tar 包,并沒有深入到 tar 包內(nèi)部,第一輪試驗宣告失敗。

馬上進入第二輪試驗,我們看看一個經(jīng)過 gzip 壓縮過的 tar 包情況如何?

#制作一個tar.gz包[roc@roclinux ~]$ tar -czvf poetry.tar.gz poetry.txt poetry_s.txtpoetry.txtpoetry_s.txt #使用-z選項查看[roc@roclinux ~]$ file -z poetry.tar.gzpoetry.tar.gz: POSIX tar archive (GNU) (gzip compressed data, from Unix, last modified: Tue Mar 1 17:43:59 2016)輸出的信息稍微豐富了一些,但還是停留在 tar 包的文件類型的層面,仍然沒有窺探到里面的 poetry.txt 和 poetry_s.txt 文件。第二輪試驗也宣告失敗。 那 bzip2 壓縮的 tar 包是否 OK 呢?我們又趕快進入了第三輪試驗。

#制作一個.tar.bz2文件[roc@roclinux ~]$ tar -cjvf poetry.tar.bz2 poetry.txt poetry_s.txtpoetry.txtpoetry_s.txt #使用-z選項查看[roc@roclinux ~]$ file -z poetry.tar.bz2poetry.tar.bz2: POSIX tar archive (GNU) (bzip2 compressed data, block size = 900k)

如你所見,第三輪試驗仍然是失敗的。我已經(jīng)開始懷疑人生了。信念讓我堅持,不能服輸。哈哈,就這樣,我們再次踏上征程。我懷疑file只能窺探到單個文件壓縮的情況,于是,第四輪試驗開始了。

#制作一個只包含1個文件的bz2文件[roc@roclinux ~]$ bzip2 -c poetry.txt 》 poetry.bz2 #使用-z選項查看[roc@roclinux ~]$ file -z poetry.bz2poetry.bz2: ASCII text (bzip2 compressed data, block size = 900k)

結(jié)果依然讓我失望,這到底是要鬧哪樣???到了這步田地,也就剩下單個 gzip 壓縮文件的情況沒有嘗試了,我再碰碰運氣吧,如果-z選項還是不能如愿地顯示壓縮文件包含文件的類型信息,我就打算給 file 的作者寫郵件投訴了。

于是,第五輪試驗開始了。

#制作一個僅包含1個文件的gz文件[roc@roclinux ~]$ gzip -c poetry.txt 》 poetry.gz #嘗試用-z選項查看, 竟然查出結(jié)果了, 看到了ASCII text字樣[roc@roclinux ~]$ file -z poetry.gzpoetry.gz: ASCII text (gzip compressed data, was “poetry.txt”, from Unix, last modified: Tue Mar 1 19:01:22 2016) #再試試沒有-z選項的情況, 確實沒有探測出ASCII text類型[roc@roclinux ~]$ file poetry.gzpoetry.gz: gzip compressed data, was “poetry.txt”, from Unix, last modified: Tue Mar 1 19:01:22 2016

終于,終于,我們終于成功了,我們通過試驗找到了答案。

直到這步我們才知道,man 中 -z 選項的解釋雖然是“Try to look inside compressed files”,但其實只支持對 gzip 包內(nèi)部文件的窺探,而對于 tar、tar.gz、tar.bz2 和 bz2 包全部都不支持。

大膽猜測,file 的作者可能是迫于開發(fā)時間的壓力,僅僅支持了 gzip 的情況,但是又不希望未來僅支持這一種壓縮類型,因此寫上“Try to”,為日后的擴展留下了可能性。

原文標題:每天一個 Linux 命令(62):file 命令

文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11822

    瀏覽量

    219600
  • File
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    14734

原文標題:每天一個 Linux 命令(62):file 命令

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Linux系統(tǒng)中這三個命令的完整功能和正確查看方法

    Linux 系統(tǒng)的日常運維中,監(jiān)控進程資源使用情況是最頻繁的工作之一。當服務(wù)器 CPU 突然飆高、內(nèi)存告警、或者業(yè)務(wù)響應(yīng)變慢時,運維工程師首先要做的事情就是查看系統(tǒng)資源使用狀況。top、ps、free 這三個命令幾乎是每個運維人員每天都要敲幾十遍的工具。
    的頭像 發(fā)表于 04-21 11:45 ?209次閱讀

    Linux新手最常踩的10個命令坑介紹

    從事運維工作十余年,帶過不少新人,發(fā)現(xiàn)有些命令錯誤幾乎是每個Linux使用者都曾經(jīng)遇到過的。這些錯誤輕則導(dǎo)致操作失敗、浪費時間,重則引發(fā)數(shù)據(jù)丟失、服務(wù)中斷、生產(chǎn)事故。本篇文章結(jié)合2026年
    的頭像 發(fā)表于 04-09 10:11 ?221次閱讀

    Linux新手必看!3個命令搞定所有“求助”,再也不用到處查文檔

    其實根本不用慌——Linux 早就自帶了 “說明書”,學會 3 個核心幫助命令,就能解決 90% 的操作疑問,比百度還快!
    的頭像 發(fā)表于 02-03 15:28 ?864次閱讀
    <b class='flag-5'>Linux</b>新手必看!3個<b class='flag-5'>命令</b>搞定所有“求助”,再也不用到處查文檔

    Linux 下開發(fā)嵌入式必備命令速查表

    在嵌入式開發(fā)中,Linux系統(tǒng)幾乎成為必備的開發(fā)環(huán)境。不管你是在做STM32、RaspberryPi、還是基于ARM的板子,熟練掌握Linux命令不僅能加快開發(fā)效率,還能讓你在調(diào)試、交叉編譯、文件
    的頭像 發(fā)表于 01-19 09:06 ?1049次閱讀
    <b class='flag-5'>Linux</b> 下開發(fā)嵌入式必備<b class='flag-5'>命令</b>速查表

    Linux中13個基本Cat命令示例

    <\'(小于符號),它使用文件名test2作為命令的輸入,輸出將顯示在終端中。 # cat < test2 This is test2 file. 12、重定向包含在單個
    發(fā)表于 12-26 06:09

    學習Linux應(yīng)該從哪里開始?

    在工業(yè)控制、邊緣計算、人工智能這些領(lǐng)域,有一句幾乎約定俗成的話: “會不會 Linux,決定了你能走多遠?!?但對很多剛?cè)腴T的工程師來說,Linux 看起來像個龐大又神秘的世界——命令行、驅(qū)動、內(nèi)核
    的頭像 發(fā)表于 10-16 09:51 ?590次閱讀
    學習<b class='flag-5'>Linux</b>應(yīng)該從哪里開始?

    飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎(chǔ)入門-文件操作相關(guān)shell命令

    :將內(nèi)容回顯到輸出設(shè)備,echo命令加上重定向可以創(chuàng)建帶內(nèi)容的文件。參數(shù):echo 內(nèi)容或者“內(nèi)容” &gt; 文件示例:2.5.3 file查看文件類型命令file功能:讀
    發(fā)表于 09-30 09:46

    shell基本介紹及常用命令之shell基本介紹

    的shell命令Linux命令一般由三部分組成:Command [option] [parameter]。說明:1.[]部分中的內(nèi)容是可選項;2.
    發(fā)表于 09-28 09:05

    Linux基礎(chǔ)命令的進階用法

    凌晨2點,正在熟睡的你被電話驚醒:"線上服務(wù)響應(yīng)超時,用戶大面積投訴!" 你匆忙打開電腦,SSH 登錄服務(wù)器,面對滿屏的進程和日志,腦子一片空白——從哪里開始排查?用什么命令?怎么快速定位問題?
    的頭像 發(fā)表于 09-02 16:33 ?779次閱讀

    測試工程師都在用的Linux命令清單(建議收藏)

    作為一名工程師,熟練掌握Linux命令是基本功中的基本功。無論是日常工作中的系統(tǒng)維護,還是面試時的技術(shù)考核,Linux命令都是繞不開的核心技能。本文將從實戰(zhàn)角度出發(fā),系統(tǒng)梳理工程師必須
    的頭像 發(fā)表于 08-08 10:06 ?852次閱讀
    測試工程師都在用的<b class='flag-5'>Linux</b><b class='flag-5'>命令</b>清單(建議收藏)

    Linux基礎(chǔ)命令which詳解

    Linux系統(tǒng)中,which命令用于查找并顯示指定命令的可執(zhí)行文件路徑。這對于系統(tǒng)管理員和開發(fā)人員來說是一個非常有用的工具,可以幫助定位命令所在的位置,確認
    的頭像 發(fā)表于 07-29 17:58 ?1076次閱讀

    linux系統(tǒng)awk特殊字符命令詳解

    Linux系統(tǒng)中,awk?是一種非常強大的文本處理工具,能夠?qū)ξ谋緮?shù)據(jù)進行分析、格式化和篩選。利用其內(nèi)置的特殊字符和操作符,用戶可以實現(xiàn)復(fù)雜的數(shù)據(jù)處理任務(wù)。以下對一些常見的awk特殊字符和操作符
    的頭像 發(fā)表于 07-28 16:38 ?758次閱讀

    已收藏!你需要知道的57個常用樹莓派命令!

    ,下面我們將按類別介紹57個最常用的命令:目錄文件管理網(wǎng)絡(luò)命令系統(tǒng)更新包管理系統(tǒng)管理樹莓派操作系統(tǒng)命令雜項命令高級命令這份列表是基于我與樹莓
    的頭像 發(fā)表于 07-23 18:36 ?1313次閱讀
    已收藏!你需要知道的57個常用樹莓派<b class='flag-5'>命令</b>!

    一文掌握Linux命令

    作為一名運維工程師,熟練掌握Linux命令是基本功中的基本功。無論是日常工作中的系統(tǒng)維護,還是面試時的技術(shù)考核,Linux命令都是繞不開的核心技能。本文將從實戰(zhàn)角度出發(fā),系統(tǒng)梳理運維工
    的頭像 發(fā)表于 07-22 15:23 ?746次閱讀

    Linux系統(tǒng)管理的核心概念

    在前一篇文章中,我們深入探討了Linux中的文件操作命令,如cp、mv、rm,以及文本處理命令grep、wc和管道符。本文將繼續(xù)深入Linux系統(tǒng)管理的核心概念,包括root用戶的角色
    的頭像 發(fā)表于 05-15 17:05 ?849次閱讀
    花莲市| 潞城市| 乌兰县| 韶关市| 卫辉市| 昭通市| 紫金县| 重庆市| 凤凰县| 台中县| 改则县| 抚远县| 攀枝花市| 庆安县| 团风县| 朔州市| 永顺县| 平南县| 张家界市| 平武县| 信丰县| 芦山县| 福建省| 上思县| 天等县| 溧水县| 长寿区| 延长县| 乌鲁木齐县| 巍山| 当雄县| 峨眉山市| 土默特左旗| 涟水县| 莱阳市| 洛浦县| 建湖县| 新蔡县| 临漳县| 德庆县| 临汾市|