每天一個(gè)linux命令:Linux文件類型與擴(kuò)展名

Linux文件類型和Linux文件的文件名所代表的意義是兩個(gè)不同的概念图柏。我們通過一般應(yīng)用程序而創(chuàng)建的比如file.txt双霍、file.tar.gz ,這些文件雖然要用不同的程序來打開,但放在Linux文件類型中衡量的話澎办,大多是常規(guī)文件(也被稱為普通文件)纺酸。

一. 文件類型

Linux文件類型常見的有:普通文件窖逗、目錄文件、字符設(shè)備文件和塊設(shè)備文件餐蔬、符號(hào)鏈接文件等碎紊,現(xiàn)在我們進(jìn)行一個(gè)簡(jiǎn)要的說明。

1. 普通文件

我們用 ls -lh 來查看某個(gè)文件的屬性樊诺,可以看到有類似-rwxrwxrwx仗考,值得注意的是第一個(gè)符號(hào)是 - ,這樣的文件在Linux中就是普通文件词爬。這些文件一般是用一些相關(guān)的應(yīng)用程序創(chuàng)建秃嗜,比如圖像工具、文檔工具顿膨、歸檔工具... .... 或 cp工具等锅锨。這類文件的刪除方式是用rm 命令。 另外恋沃,依照文件的內(nèi)容必搞,又大略可以分為:

1>. 純文本檔(ASCII):

這是Linux系統(tǒng)中最多的一種文件類型,稱為純文本檔是因?yàn)閮?nèi)容為我們?nèi)祟惪梢灾苯幼x到的數(shù)據(jù)囊咏,例如數(shù)字恕洲、字母等等塔橡。 幾乎只要我們可以用來做為設(shè)定的文件都屬于這一種文件類型。 舉例來說研侣,你可以用命令: cat ~/.bashrc 來看到該文件的內(nèi)容谱邪。 (cat 是將一個(gè)文件內(nèi)容讀出來的指令).

2>. 二進(jìn)制文件(binary):

Linux系統(tǒng)其實(shí)僅認(rèn)識(shí)且可以執(zhí)行二進(jìn)制文件(binary file)。Linux當(dāng)中的可執(zhí)行文件(scripts, 文字型批處理文件不算)就是這種格式的文件庶诡。 剛剛使用的命令cat就是一個(gè)binary file惦银。

3>. 數(shù)據(jù)格式文件(data):

有些程序在運(yùn)作的過程當(dāng)中會(huì)讀取某些特定格式的文件,那些特定格式的文件可以被稱為數(shù)據(jù)文件 (data file)末誓。舉例來說扯俱,我們的Linux在使用者登錄時(shí),都會(huì)將登錄的數(shù)據(jù)記錄在 /var/log/wtmp那個(gè)文件內(nèi)喇澡,該文件是一個(gè)data file迅栅,他能夠透過last這個(gè)指令讀出來! 但是使用cat時(shí)晴玖,會(huì)讀出亂碼~因?yàn)樗菍儆谝环N特殊格式的文件读存?

2. 目錄文件

當(dāng)我們?cè)谀硞€(gè)目錄下執(zhí)行,看到有類似 drwxr-xr-x 呕屎,這樣的文件就是目錄让簿,目錄在Linux是一個(gè)比較特殊的文件。注意它的第一個(gè)字符是d秀睛。創(chuàng)建目錄的命令可以用 mkdir 命令尔当,或cp命令,cp可以把一個(gè)目錄復(fù)制為另一個(gè)目錄蹂安。刪除用rm 或rmdir命令椭迎。

3. 字符設(shè)備或塊設(shè)備文件

如時(shí)您進(jìn)入/dev目錄,列一下文件田盈,會(huì)看到類似如下的:

[root@localhost ~]# ls -al /dev/tty

crw-rw-rw- 1 root tty 5, 0 11-03 15:11 /dev/tty

[root@localhost ~]# ls -la /dev/sda1

brw-r----- 1 root disk 8, 1 11-03 07:11 /dev/sda1

我們看到/dev/tty的屬性是 crw-rw-rw- 畜号,注意前面第一個(gè)字符是 c ,這表示字符設(shè)備文件允瞧。比如貓等串口設(shè)備简软。我們看到 /dev/sda1 的屬性是 brw-r----- ,注意前面的第一個(gè)字符是b瓷式,這表示塊設(shè)備,比如硬盤语泽,光驅(qū)等設(shè)備贸典。

這個(gè)種類的文件,是用mknode來創(chuàng)建踱卵,用rm來刪除廊驼。目前在最新的Linux發(fā)行版本中据过,我們一般不用自己來創(chuàng)建設(shè)備文件。因?yàn)檫@些文件是和內(nèi)核相關(guān)聯(lián)的妒挎。

與系統(tǒng)周邊及儲(chǔ)存等相關(guān)的一些文件绳锅, 通常都集中在/dev這個(gè)目錄之下!通常又分為兩種:

區(qū)塊(block)設(shè)備檔 :

就是一些儲(chǔ)存數(shù)據(jù)酝掩, 以提供系統(tǒng)隨機(jī)存取的接口設(shè)備鳞芙,舉例來說,硬盤與軟盤等就是啦期虾! 你可以隨機(jī)的在硬盤的不同區(qū)塊讀寫原朝,這種裝置就是成組設(shè)備!你可以自行查一下/dev/sda看看镶苞, 會(huì)發(fā)現(xiàn)第一個(gè)屬性為[ b ]喳坠!

字符(character)設(shè)備文件:

亦即是一些串行端口的接口設(shè)備, 例如鍵盤茂蚓、鼠標(biāo)等等壕鹉!這些設(shè)備的特色就是一次性讀取的,不能夠截?cái)噍敵觥?舉例來說聋涨,你不可能讓鼠標(biāo)跳到另一個(gè)畫面晾浴,而是滑動(dòng)到另一個(gè)地方!第一個(gè)屬性為 [ c ]牛郑。

4. 數(shù)據(jù)接口文件(sockets):

數(shù)據(jù)接口文件(或者:套接口文件)怠肋,這種類型的文件通常被用在網(wǎng)絡(luò)上的數(shù)據(jù)承接了。我們可以啟動(dòng)一個(gè)程序來監(jiān)聽客戶端的要求淹朋, 而客戶端就可以透過這個(gè)socket來進(jìn)行數(shù)據(jù)的溝通了笙各。第一個(gè)屬性為 [ s ], 最常在/var/run這個(gè)目錄中看到這種文件類型了础芍。

例如:當(dāng)我們啟動(dòng)MySQL服務(wù)器時(shí)杈抢,會(huì)產(chǎn)生一個(gè)mysql.sock的文件。

[root@localhost ~]# ls -lh /var/lib/mysql/mysql.sock

srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock

注意這個(gè)文件的屬性的第一個(gè)字符是 s仑性。

5. 符號(hào)鏈接文件:

當(dāng)我們查看文件屬性時(shí)惶楼,會(huì)看到有類似 lrwxrwxrwx,注意第一個(gè)字符是l,這類文件是鏈接文件诊杆。是通過ln -s 源文件名 新文件名 歼捐。上面是一個(gè)例子,表示setup.log是install.log的軟鏈接文件晨汹。怎么理解呢豹储?這和Windows操作系統(tǒng)中的快捷方式有點(diǎn)相似。

符號(hào)鏈接文件的創(chuàng)建方法舉例:

[root@localhost test]# ls -lh log2012.log

-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

[root@localhost test]# ln -s log2012.log linklog.log

[root@localhost test]# ls -lh *.log

lrwxrwxrwx 1 root root 11 11-22 06:58 linklog.log -> log2012.log

-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

6. 數(shù)據(jù)輸送文件(FIFO,pipe):

FIFO也是一種特殊的文件類型淘这,他主要的目的在解決多個(gè)程序同時(shí)存取一個(gè)文件所造成的錯(cuò)誤問題剥扣。 FIFO是first-in-first-out的縮寫巩剖。第一個(gè)屬性為[p] 。

二. Linux文件擴(kuò)展名

1. 擴(kuò)展名類型

基本上钠怯,Linux的文件是沒有所謂的擴(kuò)展名的佳魔,一個(gè)Linux文件能不能被執(zhí)行,與他的第一欄的十個(gè)屬性有關(guān)晦炊, 與檔名根本一點(diǎn)關(guān)系也沒有鞠鲜。這個(gè)觀念跟Windows的情況不相同喔!在Windows底下刽锤, 能被執(zhí)行的文件擴(kuò)展名通常是 .com .exe .bat等等镊尺,而在Linux底下,只要你的權(quán)限當(dāng)中具有x的話并思,例如[ -rwx-r-xr-x ] 即代表這個(gè)文件可以被執(zhí)行庐氮。

不過,可以被執(zhí)行跟可以執(zhí)行成功是不一樣的~舉例來說宋彼,在root家目錄下的install.log 是一個(gè)純文本檔弄砍,如果經(jīng)由修改權(quán)限成為 -rwxrwxrwx 后,這個(gè)文件能夠真的執(zhí)行成功嗎输涕? 當(dāng)然不行~因?yàn)樗膬?nèi)容根本就沒有可以執(zhí)行的數(shù)據(jù)音婶。所以說,這個(gè)x代表這個(gè)文件具有可執(zhí)行的能力莱坎, 但是能不能執(zhí)行成功衣式,當(dāng)然就得要看該文件的內(nèi)容.

雖然如此,不過我們?nèi)匀幌M梢越逵蓴U(kuò)展名來了解該文件是什么東西檐什,所以碴卧,通常我們還是會(huì)以適當(dāng)?shù)臄U(kuò)展名來表示該文件是什么種類的。底下有數(shù)種常用的擴(kuò)展名:

*.sh : 腳本或批處理文件 (scripts)乃正,因?yàn)榕幚砦募槭褂胹hell寫成的住册,所以擴(kuò)展名就編成 .sh

*Z, *.tar, *.tar.gz, *.zip, *.tgz: 經(jīng)過打包的壓縮文件。這是因?yàn)閴嚎s軟件分別為 gunzip, tar 等等的瓮具,由于不同的壓縮軟件荧飞,而取其相關(guān)的擴(kuò)展名!

*.html, *.php:網(wǎng)頁相關(guān)文件名党,分別代表 HTML 語法與 PHP 語法的網(wǎng)頁文件叹阔。 .html 的文件可使用網(wǎng)頁瀏覽器來直接開啟,至于 .php 的文件传睹, 則可以透過 client 端的瀏覽器來 server 端瀏覽耳幢,以得到運(yùn)算后的網(wǎng)頁結(jié)果。

基本上蒋歌,Linux系統(tǒng)上的文件名真的只是讓你了解該文件可能的用途而已帅掘,真正的執(zhí)行與否仍然需要權(quán)限的規(guī)范才行。例如雖然有一個(gè)文件為可執(zhí)行文件堂油,如常見的/bin/ls這個(gè)顯示文件屬性的指令修档,不過,如果這個(gè)文件的權(quán)限被修改成無法執(zhí)行時(shí)府框,那么ls就變成不能執(zhí)行吱窝。

上述的這種問題最常發(fā)生在文件傳送的過程中。例如你在網(wǎng)絡(luò)上下載一個(gè)可執(zhí)行文件迫靖,但是偏偏在你的 Linux系統(tǒng)中就是無法執(zhí)行院峡!呵呵!那么就是可能文件的屬性被改變了系宜。不要懷疑照激,從網(wǎng)絡(luò)上傳送到你的 Linux系統(tǒng)中,文件的屬性與權(quán)限確實(shí)是會(huì)被改變的盹牧。

2. Linux文件名長(zhǎng)度限制:

在Linux底下俩垃,使用預(yù)設(shè)的Ext2/Ext3文件系統(tǒng)時(shí),針對(duì)文件名長(zhǎng)度限制為:

單一文件或目錄的最大容許文件名為 255 個(gè)字符

包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個(gè)字符

是相當(dāng)長(zhǎng)的檔名汰寓!我們希望Linux的文件名可以一看就知道該文件在干嘛的口柳, 所以檔名通常是很長(zhǎng)很長(zhǎng)。

3. Linux文件名的字符的限制:

由于Linux在文字接口下的一些指令操作關(guān)系有滑,一般來說跃闹,你在設(shè)定Linux底下的文件名時(shí), 最好可以避免一些特殊字符比較好毛好!例如底下這些:

* ? > < ; & ! [ ] | ' " ` ( ) { }

因?yàn)檫@些符號(hào)在文字接口下望艺,是有特殊意義的。另外睛榄,文件名的開頭為小數(shù)點(diǎn)“.”時(shí)荣茫, 代表這個(gè)文件為隱藏文件!同時(shí)场靴,由于指令下達(dá)當(dāng)中啡莉,常常會(huì)使用到 -option 之類的選項(xiàng), 所以你最好也避免將文件檔名的開頭以 - 或 + 來命名旨剥。

轉(zhuǎn)載地址:http://www.cnblogs.com/peida/archive/2012/11/22/2781912.html


你想要的C/C++全套資料盡在這里咧欣!

關(guān)注公眾號(hào)【速學(xué)C語言】點(diǎn)擊菜單欄‘領(lǐng)取資料’領(lǐng)取上課地址、項(xiàng)目源碼以及更多學(xué)習(xí)資料轨帜!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魄咕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蚌父,更是在濱河造成了極大的恐慌哮兰,老刑警劉巖毛萌,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異喝滞,居然都是意外死亡阁将,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門右遭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來做盅,“玉大人,你說我怎么就攤上這事窘哈〈盗瘢” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵滚婉,是天一觀的道長(zhǎng)图筹。 經(jīng)常有香客問我,道長(zhǎng)让腹,這世上最難降的妖魔是什么婿斥? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮哨鸭,結(jié)果婚禮上民宿,老公的妹妹穿的比我還像新娘。我一直安慰自己像鸡,他們只是感情好活鹰,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著只估,像睡著了一般志群。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛔钙,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天锌云,我揣著相機(jī)與錄音,去河邊找鬼吁脱。 笑死桑涎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的兼贡。 我是一名探鬼主播攻冷,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼遍希!你這毒婦竟也來了等曼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎禁谦,沒想到半個(gè)月后胁黑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡州泊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年别厘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拥诡。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖氮发,靈堂內(nèi)的尸體忽然破棺而出渴肉,到底是詐尸還是另有隱情,我是刑警寧澤爽冕,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布仇祭,位于F島的核電站,受9級(jí)特大地震影響颈畸,放射性物質(zhì)發(fā)生泄漏乌奇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一眯娱、第九天 我趴在偏房一處隱蔽的房頂上張望礁苗。 院中可真熱鬧,春花似錦徙缴、人聲如沸试伙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疏叨。三九已至,卻和暖如春穿剖,著一層夾襖步出監(jiān)牢的瞬間蚤蔓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工糊余, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秀又,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓贬芥,卻偏偏與公主長(zhǎng)得像涮坐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誓军,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容