玖玖资源站亚洲av_日本乱偷中文字幕一二三区_久久这里只有精品98_亚洲特级黄片视频_男女很舒服爽视频免费_国产一二三四2021精字窝_国产高潮白浆一区_自拍日本高清三级_秘书高跟黑色丝袜国产在线_亚洲A v永久无码精品网站色欲

NEWS

新聞

了解優(yōu)麒麟最新資訊,關注社區(qū)和產(chǎn)品動態(tài)。

NEWS

Learn about the latest news.

Linux上的文件類型與默認圖標

2018-12-12 17:43:09

引言

也許小伙伴們對 Linux 已經(jīng)有一定程度的了解,或者已經(jīng)是一名能夠在工作和生活中活用它的 Linux 用戶了。隨著桌面環(huán)境的不斷發(fā)展,Linux 系統(tǒng)已經(jīng)不再僅僅是一個面向極客和開發(fā)者的操作系統(tǒng)了,在 PC 上,上手 Linux 桌面已經(jīng)可以變得像上手Windows 桌面一樣簡單。

本篇文章是一篇純黑的技術(shù)軟文,講的是我們平時一般不會在意的東西,而且不會涉及具體編程方面的知識,所以小伙伴們不用擔心文章過于晦澀難懂,盡情的一邊喝茶一邊漲知識吧!

Windows上的文件類型與默認圖標

在Windows上,文件類型基于唯一后綴名進行區(qū)分,比如——文本類型的后綴名是”.txt”,而Win32應用程序的后綴名是“.exe”。在win10系統(tǒng)中,這些后綴名默認被隱藏,在文件管理器的選項中更改設置為顯示,就能夠看到每個文件的后綴名了。

對于每一種文件類型,Windows上都有一個默認圖標(一般exe的圖標不是默認的,而是應用自己定制的),它的默認圖標可以由默認打開它的應用決定,比如——使用winrar作為默認應用打開”.zip”壓縮文件,那么所有的”.zip”類型文件默認圖標都會變成winrar的圖標;而使用2345好壓作為默認打開應用,默認圖標又會改變。

Linux與Windows并不完全相同

在Linux系統(tǒng)上,有一些文件沒有后綴名,比如Linux上的文本文件,即使不加txt后綴,一樣的能夠作為文本文件存在并被正確地顯示和打開。

我們右鍵文本文件圖標,打開屬性窗口,可以看到“類型”: 

Linux上的文件類型與默認圖標

我們可以推測:默認圖標的顯示是與這個類型屬性相關的。

讓我們做一個實驗

為了驗證這個結(jié)論,我們需要做一個小實驗。

  • 實驗系統(tǒng):Ubuntu Kylin 18.10

  • 實驗對象:doc、docx類型文件

  • 實驗方法:安裝/卸載wps

也許大家沒有注意過,在安裝或者卸載了系統(tǒng)上的wps以后,doc和docx等類型文件的默認圖標也改變了(如果沒有,刷新或者重啟一下)。

一般從優(yōu)麒麟官網(wǎng)上下載的增強版自帶了wps,我們打開一個目錄,創(chuàng)建一個doc和docx文檔: 

Linux上的文件類型與默認圖標

打開屬性窗口: 

Linux上的文件類型與默認圖標

Linux上的文件類型與默認圖標

可以看到它們的文件類型,那么接下來我們打開終端(Ctrl+Alt+T),輸入:

sudo apt remove wps-office 

Linux上的文件類型與默認圖標

Linux上的文件類型與默認圖標

卸載wps,接下來回到剛才創(chuàng)建的doc和docx所在的目錄,刷新一下:

Linux上的文件類型與默認圖標

這個時候的默認圖標類型已經(jīng)變了,接著再打開屬性: 

Linux上的文件類型與默認圖標

Linux上的文件類型與默認圖標

同樣的文件,文件類型改變的同時圖標也跟著改變,所以,之前所提出的推論是對的。 

那么,我們在安裝/卸載wps的時候,它究竟做了什么?

MIME-Info database

我們可以看到,在卸載wps的時候,出現(xiàn)了一些mime相關的配置,事實上,Linux上的文件類型標準就是這個MIME-Info database,所有文件類型相關的配置,包括默認圖標,都是在這個database中定義的。

大家如果有興趣,可以參考:https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-0.18.html

‘/usr/share/mime/packages’目錄下存放著相關配置文件,其中freedesktop.org.xml 是 Linux 默認的文件類型基準。在這里,我們先找到 wps-office-wps.xml,并打開: 

Linux上的文件類型與默認圖標

其中,comment、mime-type就是屬性窗口中的文件類型;

alias type,顧名思義,是mime-type的別名,所以這些文件類型就被wps-office.doc覆蓋了;

generic-icon name,即文件類型的默認圖標名;

glob partten,如果文件名中有匹配,則認為是該類型。

在/usr/share/icons目錄下存放著默認圖標: 

Linux上的文件類型與默認圖標

Linux的判斷文件類型的最優(yōu)先基準往往是通過文件名中的字段,如果字段和MIME-database匹配,則認為是該文件類型。然而,并非所有文件類型都規(guī)定了匹配字段,它們依舊能夠確定類型,但是如果重命名后包含了MIME-database的匹配字段,則會優(yōu)先使用對應類型覆蓋原有的類型。

實際上,在之前舉出的本文件創(chuàng)建的例子中,不需要后綴名的原因是文本類型的文件在創(chuàng)建的時候已經(jīng)被賦予了MIME type,只要文件名不與其它MIME type的基準沖突,這個文本文件就能正常的顯示和打開。

DIY一個文件類型的圖標

小伙伴們也許現(xiàn)在還有點一頭霧水,沒關系,接下來的干貨才是重頭戲;前面的看不懂?沒關系,自己動手做一次,馬上就理解了。

Linux上的文件類型與默認圖標

可以看到,命名為.so的文件的默認圖標已經(jīng)被小編改成了自己的圖案,那么究竟是怎么做到的呢?接下來我們一步一步的完成。

1、準備圖標

首先,我們需要準備自己的文件類型圖片,一般使用png格式即可,文件圖標可以在網(wǎng)上下載自己喜歡的,也可以使用GIMP自己繪制然后導出,小編這里為了方便,就自己簡單的畫了一下。GIMP可以在開始菜單中搜索gimp得到:

Linux上的文件類型與默認圖標

Linux上的文件類型與默認圖標

關于GIMP的使用,小編也是小白所以就不羅嗦了,大家有興趣的話自行百度一下吧。

我們打開/usr/share/icons/ukui-icon-theme目錄:

Linux上的文件類型與默認圖標

我們把準備好的圖標放進對應尺寸文件夾的mimetypes目錄下,比如48x48的png放到/usr/share/icons/ukui-icon-theme/48x48/mimetypes目錄下。

由于在/usr/share目錄下操作需要管理員權(quán)限,所以建議以管理員身分運行文件管理器,優(yōu)麒麟18.10上,在終端輸入:

sudo peony

就可以以管理員身分運行文件管理器,當然小伙伴們也可以使用sudo cp在終端操作。

還有,這里一定要注意,我們不同尺寸目錄下的圖標文件名必須一樣,不然等會兒圖片會找不全。

2、編寫自己的配置文件

就像wps做的那樣,我們也需要自己寫一個.xml文件來覆蓋原有的文件類型,這同樣需要管理員權(quán)限。

我們在/usr/share/mime/packages目錄下創(chuàng)建一個文本文件,命名為XXX.xml(這里小編的是sharedlib.xml),輸入以下內(nèi)容。

本篇文章是一篇純黑的技術(shù)軟文,講的是我們平時一般不會在意的東西,而且不會涉及具體編程方面的知識,所以小伙伴們不用擔心文章過于晦澀難懂,盡情的一邊喝茶一邊漲知識吧!    

最關鍵的是alias type、generic-icon name和glob pattern三項。保存退出。 

Linux上的文件類型與默認圖標

3、更新

現(xiàn)在我們的.so文件還沒有變,因為我們還需要手動更新它。

依次執(zhí)行:

sudo gtk-update-icon-cache /usr/share/icons/ukui-icon-theme/

sudo update-mime-database -V /usr/share/mime

第一條命令將我們的自定圖片更新到cache中,使得文件管理器能夠通過cache找到我們的icon;

第二條命令將我們對配置的更改更新至MIME-database中,這樣我們的自定義配置就生效了。

我們刷新一下在看看,.so文件是不是變了?打開.so文件的屬性,發(fā)現(xiàn)它的內(nèi)容和mime-type也已經(jīng)變成了我們自己寫的類型。

也許有小伙伴們會問,為什么只有.so文件變了,.so.1.2.3之類的文件沒有變呢?這就是glob參數(shù)的作用了,大家有興趣可以研究一下freedesktop.org.xml文件,里面有對于application/x-sharedlib原來glob的標注,不光是.so,也能夠識別類似.so.1.2.3的類型。

不知到大家是否有所收獲呢?本篇文章雖然沒有涉及代碼編程,但是不同的人看,一定會有不同的體會和收獲吧,在行文中小編凸顯了一些細節(jié),也略寫了一些細節(jié),希望大家看完這篇軟文以后能夠有所精進,讓我們在Linux的道路上共同進步吧。