中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

每天一個linux命令(ling)(24):Linux文件類型(xing)與擴展名

Linux文(wen)件(jian)(jian)類型(xing)和Linux文(wen)件(jian)(jian)的(de)(de)文(wen)件(jian)(jian)名所代表的(de)(de)意(yi)義(yi)是兩(liang)個不(bu)同(tong)的(de)(de)概念。我們通過一般應(ying)用(yong)程(cheng)序而創(chuang)建的(de)(de)比如file.txt、file.tar.gz ,這些文(wen)件(jian)(jian)雖(sui)然要用(yong)不(bu)同(tong)的(de)(de)程(cheng)序來打開,但(dan)放在Linux文(wen)件(jian)(jian)類型(xing)中衡(heng)量的(de)(de)話,大多是常規(gui)文(wen)件(jian)(jian)(也被稱為(wei)普(pu)通文(wen)件(jian)(jian))。

. 文件類型

Linux文件(jian)類型常見的有:普通(tong)文件(jian)、目錄文件、字符設備文(wen)件塊設(she)備文(wen)件(jian)、符號(hao)鏈接文(wen)件(jian)等現在我們進行一個簡(jian)要的說明。

1. 普通文件 

我(wo)們用 ls -lh 來查看某個(ge)文件(jian)的(de)(de)(de)屬性,可以看到有類(lei)似-rwxrwxrwx,值(zhi)得注(zhu)意的(de)(de)(de)是(shi)第一(yi)個(ge)符號是(shi) - ,這樣(yang)的(de)(de)(de)文件(jian)在(zai)Linux中就是(shi)普通文件(jian)。這些文件(jian)一(yi)般是(shi)用一(yi)些相關(guan)的(de)(de)(de)應用程序創建,比如圖像工(gong)具(ju)(ju)、文檔(dang)工(gong)具(ju)(ju)、歸(gui)檔(dang)工(gong)具(ju)(ju)... .... 或 cp工(gong)具(ju)(ju)等。這類(lei)文件(jian)的(de)(de)(de)刪除方式是(shi)用rm 命(ming)令。 另外,依照文件(jian)的(de)(de)(de)內容(rong),又大略可以分為(wei):

1>. 純文本(ben)檔(ASCII):

這是Linux系(xi)統中最多的一種文件類型,稱為(wei)(wei)純文本檔是因為(wei)(wei)內容為(wei)(wei)我們人類可以直(zhi)接讀到(dao)的數(shu)據,例如數(shu)字(zi)、字(zi)母等(deng)等(deng)。 幾(ji)乎只要我們可以用來做為(wei)(wei)設定的文件都屬于這一種文件類型。 舉例來說,你可以用命令: cat ~/.bashrc 來看到該文件(jian)的(de)內容(rong)。 (cat 是將(jiang)一個文件(jian)內容(rong)讀(du)出來的(de)指令(ling)).

2>. 二進制文(wen)件(binary):

Linux系統其實僅認識且(qie)可以執行(xing)二進制文件(binary file)Linux當中的(de)可執行文(wen)件(jian)(scripts, 文(wen)字型批處理文(wen)件(jian)不算)就是(shi)這種格(ge)式的(de)文件。 剛剛使用令(ling)cat就(jiu)是一個binary file。

3>. 數(shu)據(ju)格式文(wen)件(data): 

有些程(cheng)序在運作的過(guo)程(cheng)當(dang)中會讀(du)取某(mou)些特定格式的文件(jian),那些特定格式的文件(jian)可以(yi)被稱(cheng)為(wei)數據文件(jian) (data file)。舉例來說,我們的Linux在使用(yong)者登時,都(dou)會(hui)將登錄(lu)的數據記錄(lu)在(zai) /var/log/wtmp那個文(wen)(wen)件(jian)內,該文(wen)(wen)件(jian)是(shi)一個data file,他能夠透過last這(zhe)個指令讀(du)出(chu)來! 但(dan)是(shi)使用(yong)cat時,會(hui)讀(du)出(chu)亂碼~因(yin)為他是(shi)屬(shu)于一種特殊格(ge)式的文(wen)(wen)件(jian)?

2. 目(mu)錄(lu)文(wen)件(jian)

當我(wo)們在某個(ge)(ge)(ge)目(mu)錄下執行,看到(dao)有類(lei)似 drwxr-xr-x ,這樣的文件就(jiu)是目(mu)錄,目(mu)錄在Linux是一(yi)個(ge)(ge)(ge)比(bi)較(jiao)特殊的文件。注意它的第一(yi)個(ge)(ge)(ge)字符是d。創建目(mu)錄的命(ming)(ming)令可以用 mkdir 命(ming)(ming)令,或cp命(ming)(ming)令,cp可以把(ba)一(yi)個(ge)(ge)(ge)目(mu)錄復制為另一(yi)個(ge)(ge)(ge)目(mu)錄。刪(shan)除(chu)用rm 或rmdir命(ming)(ming)令。 

3. 字(zi)符設備(bei)或塊設備(bei)文件 

如時您進入(ru)/dev目(mu)錄,列一下文件,會看到(dao)類(lei)似如下的(de):

[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

我(wo)們看到(dao)(dao)/dev/tty的屬性是(shi)(shi) crw-rw-rw- ,注意前面第一(yi)個(ge)字符(fu)是(shi)(shi) c ,這表示字符(fu)設備文件。比如貓等(deng)串口設備。我(wo)們看到(dao)(dao) /dev/sda1 的(de)屬性是(shi) brw-r----- ,注(zhu)意前面的(de)第一個字(zi)符是(shi)b,這表示塊設(she)備(bei),比(bi)如硬(ying)盤,光驅等設(she)備(bei)。

這(zhe)個種類的(de)文(wen)件(jian),是用mknode來(lai)創建(jian),用rm來(lai)刪(shan)除(chu)。目前在最新的(de)Linux發行(xing)版本中,我們(men)一般不用自己來(lai)創建(jian)設備文(wen)件(jian)。因(yin)為這(zhe)些文(wen)件(jian)是和內核相關聯(lian)的(de)。

與系統(tong)周(zhou)邊及(ji)儲(chu)存等相(xiang)關的一些文件, 通(tong)常(chang)都集(ji)中在(zai)/dev這(zhe)個(ge)目錄之下(xia)!通(tong)常(chang)又分為兩種:

區塊(block)設備檔 :

就(jiu)是(shi)一(yi)些儲存(cun)數據(ju), 以(yi)提供系統(tong)隨機(ji)存(cun)取的接口設(she)備,舉例來說,硬盤(pan)與軟盤(pan)等就(jiu)是(shi)啦! 你可(ke)以(yi)隨機(ji)的在硬盤(pan)的不同(tong)區塊讀寫,這種裝置就(jiu)是(shi)成組設(she)備!你可(ke)以(yi)自行查一(yi)下/dev/sda看(kan)看(kan), 會發現(xian)第一(yi)個屬性為[ b ]!

字符(character)設(she)備(bei)文件:

亦即是(shi)(shi)一些(xie)(xie)串行端口的(de)接口設備(bei), 例如鍵盤、鼠(shu)標等(deng)等(deng)!這些(xie)(xie)設備(bei)的(de)特色(se)就是(shi)(shi)一次性讀取的(de),不能夠截斷輸出。 舉例來(lai)說(shuo),你(ni)不可能讓鼠(shu)標跳到另(ling)一個畫面,而是(shi)(shi)滑動到另(ling)一個地方!第(di)一個屬性為 [ c ]。

4. 數據接口文(wen)件(jian)(sockets): 

數(shu)據(ju)(ju)接(jie)(jie)口(kou)文(wen)件(jian)(或者(zhe):套(tao)接(jie)(jie)口(kou)文(wen)件(jian)),這(zhe)(zhe)種類(lei)型的文(wen)件(jian)通常(chang)被用在網(wang)絡上的數(shu)據(ju)(ju)承接(jie)(jie)了。我們可以啟(qi)動一個(ge)程序來(lai)監聽客戶端(duan)的要(yao)求, 而(er)客戶端(duan)就可以透過這(zhe)(zhe)個(ge)socket來(lai)進行數(shu)據(ju)(ju)的溝(gou)通了。第一個(ge)屬性(xing)為 [ s ], 最常(chang)在/var/run這(zhe)(zhe)個(ge)目錄中看到這(zhe)(zhe)種文(wen)件(jian)類(lei)型了。

例如:當我們啟動MySQL服務(wu)器時,會產生一個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

注意這(zhe)個文件的(de)屬性的(de)第一個字符是 s。

5. 符(fu)號鏈接文件 

當我們查看(kan)文(wen)件(jian)屬性時(shi),會看(kan)到有(you)類似 lrwxrwxrwx,注意第一(yi)個字符是l,這類文(wen)件(jian)是鏈(lian)接文(wen)件(jian)。是通過ln -s 源文(wen)件(jian)名 新(xin)文(wen)件(jian)名 。上面是一(yi)個例子,表(biao)示(shi)setup.log是install.log的(de)軟鏈(lian)接文(wen)件(jian)。怎么理(li)解呢(ni)?這和Windows操作(zuo)系統中的(de)快(kuai)捷(jie)方(fang)式有(you)點相(xiang)似。

符號鏈接文(wen)件的創建(jian)方法舉例:

[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. 數據輸(shu)送文件(FIFO,pipe):

FIFO也是(shi)一種特(te)殊的文件(jian)類型,他主要(yao)的目(mu)的在解(jie)決多個(ge)程序同時(shi)存取一個(ge)文件(jian)所造(zao)成(cheng)的錯誤問題。 FIFO是(shi)first-in-first-out的縮寫。第一個(ge)屬性為[p] 。

二. Linux文件擴(kuo)展名

1. 擴(kuo)展名類型

基本上,Linux的(de)(de)文(wen)件是沒有所謂的(de)(de)擴展(zhan)名的(de)(de),一(yi)個Linux文(wen)件能(neng)不能(neng)被執行,與他的(de)(de)第一(yi)欄的(de)(de)十(shi)個屬性有關(guan), 與檔名根(gen)本一(yi)點(dian)關(guan)系也沒有。這個觀念跟Windows的(de)(de)情況不相同喔(wo)!在(zai)Windows底(di)下(xia), 能(neng)被執行的(de)(de)文(wen)件擴展(zhan)名通常是 .com .exe .bat等(deng)等(deng),而在(zai)Linux底(di)下(xia),只要(yao)你的(de)(de)權限當中具有x的(de)(de)話,例(li)如[ -rwx-r-xr-x ] 即代(dai)表(biao)這個文(wen)件可以(yi)被執行

不(bu)過,可(ke)以(yi)被執(zhi)(zhi)行(xing)(xing)跟可(ke)以(yi)執(zhi)(zhi)行(xing)(xing)成(cheng)(cheng)(cheng)功是不(bu)一(yi)樣的(de)(de)~舉例來(lai)說(shuo),在(zai)root家目錄下的(de)(de)install.log 是一(yi)個(ge)(ge)純文本檔(dang),如果(guo)經由修改(gai)權限成(cheng)(cheng)(cheng)為(wei) -rwxrwxrwx 后(hou),這(zhe)個(ge)(ge)文件(jian)(jian)能(neng)夠真(zhen)的(de)(de)執(zhi)(zhi)行(xing)(xing)成(cheng)(cheng)(cheng)功嗎? 當然(ran)不(bu)行(xing)(xing)~因(yin)為(wei)他的(de)(de)內容根本就(jiu)沒有可(ke)以(yi)執(zhi)(zhi)行(xing)(xing)的(de)(de)數據。所以(yi)說(shuo),這(zhe)個(ge)(ge)x代表這(zhe)個(ge)(ge)文件(jian)(jian)具(ju)有可(ke)執(zhi)(zhi)行(xing)(xing)的(de)(de)能(neng)力, 但是能(neng)不(bu)能(neng)執(zhi)(zhi)行(xing)(xing)成(cheng)(cheng)(cheng)功,當然(ran)就(jiu)得要(yao)看該文件(jian)(jian)的(de)(de)內容.

雖(sui)然如此,不(bu)過我們(men)仍(reng)然希望可以藉由擴(kuo)展(zhan)(zhan)名來(lai)了(le)解該文件是(shi)什(shen)么(me)東(dong)西(xi),所以,通常(chang)我們(men)還是(shi)會以適當的(de)擴(kuo)展(zhan)(zhan)名來(lai)表示(shi)該文件是(shi)什(shen)么(me)種(zhong)類的(de)。底下有數種(zhong)常(chang)用的(de)擴(kuo)展(zhan)(zhan)名:

*.sh : 腳本或批處理文件(jian) (scripts),因為批處理文件(jian)為使用(yong)shell寫(xie)成(cheng)(cheng)的,所以擴展名就編成(cheng)(cheng) .sh 

*Z, *.tar, *.tar.gz, *.zip, *.tgz: 經過打包的(de)壓縮文件。這是因為壓縮軟件分別為 gunzip, tar 等(deng)等(deng)的(de),由于不同的(de)壓縮軟件,而取其相關的(de)擴(kuo)展名(ming)!

*.html, *.php:網頁相關文件,分別(bie)代表 HTML 語法與 PHP 語法的網頁文件 .html 的文件(jian)可使(shi)用網(wang)(wang)頁瀏(liu)覽(lan)器(qi)來直接開啟,至于 .php 的文件(jian), 則可以透(tou)過(guo) client 端的瀏(liu)覽(lan)器(qi)來 server 端瀏(liu)覽(lan),以得(de)到運算后(hou)的網(wang)(wang)頁結果(guo)

基本上,Linux系統上的文件名(ming)真(zhen)的只是(shi)讓(rang)你了解該文件可能的用(yong)途而已,真(zhen)正(zheng)的執(zhi)行與(yu)否仍然需要(yao)權限(xian)的規范才行例如雖然(ran)有一個(ge)文(wen)件(jian)為可執行(xing)文(wen)件(jian),如常見的/bin/ls這(zhe)(zhe)個(ge)顯示文(wen)件(jian)屬性的指令,不過,如果這(zhe)(zhe)個(ge)文(wen)件(jian)的權(quan)限被修改(gai)成無法(fa)執行(xing)時,那么(me)ls就變成不能執行(xing)

上述的(de)這種(zhong)問題最常發生在文(wen)(wen)件傳送的(de)過程中。例如你在網絡上下載一個可執(zhi)(zhi)行文(wen)(wen)件,但是偏偏在你的(de) Linux系(xi)統中就是無(wu)法執(zhi)(zhi)行!呵呵!那(nei)么就是可能(neng)文(wen)(wen)件的(de)屬性被(bei)改變(bian)了不要(yao)懷疑,從網絡上傳送到(dao)你的(de)(de) Linux系統(tong)中,文件的(de)(de)屬(shu)性與(yu)權(quan)限確實是(shi)會被改變的(de)(de)

2. Linux文件長(chang)度限(xian)制:

在Linux底下,使用預設(she)的Ext2/Ext3文件(jian)系統時,針對(dui)文件(jian)名長度(du)限制為:

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

包(bao)含(han)完整路徑(jing)名稱及目(mu)錄 (/) 之完整檔名為(wei) 4096 個字符

是相當長的檔名!我(wo)們希望Linux的文(wen)(wen)件名可以一看就知道該(gai)文(wen)(wen)件在干(gan)嘛的, 所(suo)以檔名通常是很長很長

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

由于(yu)Linux在文字接口下的一些指令操作關系,一般(ban)來說,你(ni)在設定Linux底(di)下的文件名(ming)時, 最好(hao)可(ke)以避免一些特殊字符比(bi)較(jiao)好(hao)!例如底(di)下這些:

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

因為這(zhe)些符號在文字接口下(xia),是有特殊意義的另(ling)外,文件名的開(kai)頭為小數點.時, 代表這個文(wen)件為隱藏文件!同(tong)時(shi),由于指令(ling)下達當中(zhong),常常會使用到 -option 之類的選項(xiang), 所以你(ni)最好也避免將文件檔名(ming)的開頭(tou)以 - 或(huo) + 來命名(ming)

posted @ 2012-11-22 07:34  peida  閱讀(45511)  評論(1)    收藏  舉報