1. 程式人生 > >每天一個linux命令(24):Linux檔案型別與副檔名

每天一個linux命令(24):Linux檔案型別與副檔名

Linux檔案型別和Linux檔案的檔名所代表的意義是兩個不同的概念。我們通過一般應用程式而建立的比如file.txt、file.tar.gz ,這些檔案雖然要用不同的程式來開啟,但放在Linux檔案型別中衡量的話,大多是常規檔案(也被稱為普通檔案)。

. 檔案型別

Linux檔案型別常見的有:普通檔案、目錄檔案、字元裝置檔案塊裝置檔案、符號連結檔案等現在我們進行一個簡要的說明。

1. 普通檔案 

我們用 ls -lh 來檢視某個檔案的屬性,可以看到有類似-rwxrwxrwx,值得注意的是第一個符號是 - ,這樣的檔案在Linux中就是普通檔案。這些檔案一般是用一些相關的應用程式建立,比如影象工具、文件工具、歸檔工具... .... 或 cp工具等。這類檔案的刪除方式是用rm 命令。 另外,依照檔案的內容,又大略可以分為:

1>. 純文字檔(ASCII):

這是Linux系統中最多的一種檔案型別,稱為純文字檔是因為內容為我們人類可以直接讀到的資料,例如數字、字母等等。 幾乎只要我們可以用來做為設定的檔案都屬於這一種檔案型別。 舉例來說,你可以用命令: cat ~/.bashrc 來看到該檔案的內容。 (cat 是將一個檔案內容讀出來的指令).

2>. 二進位制檔案(binary):

Linux系統其實僅認識且可以執行二進位制檔案(binary file)Linux當中的可執行檔案(scripts, 文字型批處理檔案不算)就是這種格式的檔案。 剛剛使用令cat就是一個binary file。

3>. 

資料格式檔案(data): 

有些程式在運作的過程當中會讀取某些特定格式的檔案,那些特定格式的檔案可以被稱為資料檔案 (data file)。舉例來說,我們的Linux在使用者登時,都會將登入的資料記錄在 /var/log/wtmp那個檔案內,該檔案是一個data file,他能夠透過last這個指令讀出來! 但是使用cat時,會讀出亂碼~因為他是屬於一種特殊格式的檔案?

2. 目錄檔案

當我們在某個目錄下執行,看到有類似 drwxr-xr-x ,這樣的檔案就是目錄,目錄在Linux是一個比較特殊的檔案。注意它的第一個字元是d。建立目錄的命令可以用 mkdir 命令,或cp命令,cp可以把一個目錄複製為另一個目錄。刪除用rm 或rmdir命令。 

3. 字元裝置或塊裝置檔案 

如時您進入/dev目錄,列一下檔案,會看到類似如下的:

[[email protected] ~]# ls -al /dev/tty

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

[[email protected] ~]# ls -la /dev/sda1

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

我們看到/dev/tty的屬性是 crw-rw-rw- ,注意前面第一個字元是 c ,這表示字元裝置檔案。比如貓等串列埠裝置。我們看到 /dev/sda1 的屬性是 brw-r----- ,注意前面的第一個字元是b,這表示塊裝置,比如硬碟,光碟機等裝置。

這個種類的檔案,是用mknode來建立,用rm來刪除。目前在最新的Linux發行版本中,我們一般不用自己來建立裝置檔案。因為這些檔案是和核心相關聯的。

與系統周邊及儲存等相關的一些檔案, 通常都集中在/dev這個目錄之下!通常又分為兩種:

區塊(block)裝置檔 :

就是一些儲存資料, 以提供系統隨機存取的介面裝置,舉例來說,硬碟與軟盤等就是啦! 你可以隨機的在硬碟的不同區塊讀寫,這種裝置就是成組裝置!你可以自行查一下/dev/sda看看, 會發現第一個屬性為[ b ]!

字元(character)裝置檔案:

亦即是一些串列埠的介面裝置, 例如鍵盤、滑鼠等等!這些裝置的特色就是一次性讀取的,不能夠截斷輸出。 舉例來說,你不可能讓滑鼠跳到另一個畫面,而是滑動到另一個地方!第一個屬性為 [ c ]。

4. 資料介面檔案(sockets): 

資料介面檔案(或者:套介面檔案),這種型別的檔案通常被用在網路上的資料承接了。我們可以啟動一個程式來監聽客戶端的要求, 而客戶端就可以透過這個socket來進行資料的溝通了。第一個屬性為 [ s ], 最常在/var/run這個目錄中看到這種檔案型別了。

例如:當我們啟動MySQL伺服器時,會產生一個mysql.sock的檔案。

[[email protected] ~]# ls -lh /var/lib/mysql/mysql.sock 

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

注意這個檔案的屬性的第一個字元是 s。

5. 符號連結檔案 

當我們檢視檔案屬性時,會看到有類似 lrwxrwxrwx,注意第一個字元是l,這類檔案是連結檔案。是通過ln -s 原始檔名 新檔名 。上面是一個例子,表示setup.log是install.log的軟連結檔案。怎麼理解呢?這和Windows作業系統中的快捷方式有點相似。

符號連結檔案的建立方法舉例:

[[email protected] test]# ls -lh log2012.log

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

[[email protected] test]# ln -s log2012.log  linklog.log

[[email protected] 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. 資料輸送檔案(FIFO,pipe):

FIFO也是一種特殊的檔案型別,他主要的目的在解決多個程式同時存取一個檔案所造成的錯誤問題。 FIFO是first-in-first-out的縮寫。第一個屬性為[p] 。

二. Linux副檔名

1. 副檔名型別

基本上,Linux的檔案是沒有所謂的副檔名的,一個Linux檔案能不能被執行,與他的第一欄的十個屬性有關, 與檔名根本一點關係也沒有。這個觀念跟Windows的情況不相同喔!在Windows底下, 能被執行的副檔名通常是 .com .exe .bat等等,而在Linux底下,只要你的許可權當中具有x的話,例如[ -rwx-r-xr-x ] 即代表這個檔案可以被執行

不過,可以被執行跟可以執行成功是不一樣的~舉例來說,在root家目錄下的install.log 是一個純文字檔,如果經由修改許可權成為 -rwxrwxrwx 後,這個檔案能夠真的執行成功嗎? 當然不行~因為他的內容根本就沒有可以執行的資料。所以說,這個x代表這個檔案具有可執行的能力, 但是能不能執行成功,當然就得要看該檔案的內容.

雖然如此,不過我們仍然希望可以藉由副檔名來了解該檔案是什麼東西,所以,通常我們還是會以適當的副檔名來表示該檔案是什麼種類的。底下有數種常用的副檔名:

*.sh : 指令碼或批處理檔案 (scripts),因為批處理檔案為使用shell寫成的,所以副檔名就編成 .sh 

*Z, *.tar, *.tar.gz, *.zip, *.tgz: 經過打包的壓縮檔案。這是因為壓縮軟體分別為 gunzip, tar 等等的,由於不同的壓縮軟體,而取其相關的副檔名!

*.html, *.php:網頁相關檔案,分別代表 HTML 語法與 PHP 語法的網頁檔案 .html 的檔案可使用網頁瀏覽器來直接開啟,至於 .php 的檔案, 則可以透過 client 端的瀏覽器來 server 端瀏覽,以得到運算後的網頁結果

基本上,Linux系統上的檔名真的只是讓你瞭解該檔案可能的用途而已,真正的執行與否仍然需要許可權的規範才行例如雖然有一個檔案為可執行檔案,如常見的/bin/ls這個顯示檔案屬性的指令,不過,如果這個檔案的許可權被修改成無法執行時,那麼ls就變成不能執行

上述的這種問題最常發生在檔案傳送的過程中。例如你在網路上下載一個可執行檔案,但是偏偏在你的 Linux系統中就是無法執行!呵呵!那麼就是可能檔案的屬性被改變了不要懷疑,從網路上傳送到你的 Linux系統中,檔案的屬性與許可權確實是會被改變的

2. Linux檔案長度限制:

在Linux底下,使用預設的Ext2/Ext3檔案系統時,針對檔名長度限制為:

單一檔案或目錄的最大容許檔名為 255 個字元

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

是相當長的檔名!我們希望Linux的檔名可以一看就知道該檔案在幹嘛的, 所以檔名通常是很長很長

3. Linux檔名的字元的限制:

由於Linux在文字介面下的一些指令操作關係,一般來說,你在設定Linux底下的檔名時, 最好可以避免一些特殊字元比較好!例如底下這些:

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

因為這些符號在文字介面下,是有特殊意義的另外,檔名的開頭為小數點.時, 代表這個檔案為隱藏檔案!同時,由於指令下達當中,常常會使用到 -option 之類的選項, 所以你最好也避免將檔案檔名的開頭以 - 或 + 來命名

相關推薦

每天一個linux命令(24)Linux檔案型別檔名

Linux檔案型別和Linux檔案的檔名所代表的意義是兩個不同的概念。我們通過一般應用程式而建立的比如file.txt、file.tar.gz ,這些檔案雖然要用不同的程式來開啟,但放在Linux檔案型別中衡量的話,大多是常規檔案(也被稱為普通檔案)。一. 檔案型別Linux

Linux檔案型別檔名

檔案型別 linux常見的檔案型別有普通檔案、目錄檔案、字元裝置檔案、塊裝置檔案和符號連結檔案 1. 普通檔案 當用ls -lh檢視某個檔案的屬性時,會看到第一列是-rwxrwxrwx,第一個字元是-的檔案就是普通檔案,主要是由一些相關的工具建立 2. 目錄檔案 執行ls -lh

每天一個liunx命令(1) echo命令

echo命令用於在終端顯示字串或變數 格式為:echo 【字串|變數】 1). 將 echo 命令的字串輸出到終端:     [[email protected] ~]# echo helloworld     h

Linux命令學習Linux中more和less命令以及查詢用法

** 一、more命令 ** more功能類似 cat ,cat命令是整個檔案的內容從上到下顯示在螢幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。mo

C#儲存excel檔案時提示檔案格式檔名不匹配

如果儲存生成的excel檔案提示如下錯誤, 可以通過設定儲存excel格式來解決。 【例】 public static string xlsFilePath = @"D:\";//excel檔案存放路徑       &nbs

ASP.NET中常見檔案型別檔名、存放位置及用途總結

.asax 應用程式根目錄。 通常是 Global.asax 檔案,該檔案包含從 HttpApplication 類派生並表示該應用程式的程式碼。 有關更多資訊,請參見 Global.asax 語法。 .ascx 應用程式根目錄或子目錄。 Web 使用者控制元件檔案,該檔案定義自定義、可重複使用的使

每天一個Linux命令】25. 檢視檔案命令(cat/more/less/tail/tac/nl/od)

linux中檢視檔案的命令如下: cat: 由第一行開始顯示檔案內容 tac: 從最後一行開始顯示,可以看出 tac 是 cat 的反向顯示! nl: 顯示的時候,隨便輸出行號! more: 一頁一頁的顯示檔案內容less 與 more 類似,但是比 more 更好的是,他

每天一個Linux命令(15)tail

從指定點開始,tail將檔案寫到標準輸出。使用-f選項,我們可以方便地查閱正在改變的日誌檔案,tail -f filename會把filename檔案中最尾部的內容顯示在螢幕上,並且不斷地重新整理,使我們看到檔案最新的內容。 1. 命令格式 tail

每天一個linux命令(4)mkdir命令

linux mkdir 命令用來建立指定的名稱的目錄,要求建立目錄的使用者在當前目錄中具有寫許可權,並且指定的目錄名不能是當前目錄中已有的目錄。 1.命令格式: mkdir [選項] 目錄... 2.命令功能:

每天一個Linux命令】15. 搜尋檔案命令find

命令用途 find命令用於:在一個目錄(及子目錄)中搜索檔案,你可以指定一些匹配條件,如按檔名、檔案型別、使用者甚至是時間戳查詢檔案。命令例項 0. 幫助命令: [email protected]:~$ find -help 用法: find [-H] [-L]

每天一個Linux命令(2)cd

cd 命令可以說是Linux中最基本的命令,其他的命令要進行操作,都需要建立在使用 cd 命令上的。所以,學習Linux 常用命令,首先就要學好cd命令的使用方法。 1. 命令格式 cd [目錄名] 2. 命令功能 切換當前目錄至目標路徑

Linux基礎命令檢視檔案內容

1.cat 文字檢視。檢視指定檔案的內容 [[email protected] ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

linux每日命令(26)Linux檔案屬性詳解

Linux 檔案或目錄的屬性主要包括:檔案或目錄的節點、種類、許可權模式、連結數量、所歸屬的使用者和使用者組、最近訪問或修改的時間等內容。具體情況如下: 命令: ls -lih 輸出: [[email protected] test]# ls -lih total 0 51621141 dr

linux每日命令(30)Linux 使用者及使用者組相關檔案命令詳解

一. 使用者、使用者組概念及其檔案結構詳解 Linux使用者只有兩個等級:root及非root。Linux中還有一部分使用者,如:apache、mysql、nobody、ftp等,這些也都是非root使用者,即普通使用者。Linux的許可權實際是上不同使用者所能訪問的檔案的不同產生的假象。而這些假象的造成,

Linux基本命令25文字檔案編譯命令

cat命令 cat命令用於檢視純文字檔案(內容較少的文字檔案),格式為“cat[選項][檔案]”。 選項: -n引數:檢視文字內容時顯示行號 執行cat -n 檔案命令: more命令 more命

linux命令 - scp在本地和遠端之間拷貝檔案

scp命令詳解 - 掃地僧--神龍冠日 - 部落格園http://www.cnblogs.com/likui360/p/6011769.html 開發板linux到虛擬機器linux間的檔案傳輸——scp指令與本地地址的配置 - Leaviathan的部落格 - CSDN部落格https://b

linux命令 - du檢視目錄下檔案和資料夾的大小

連結:(轉)Linux下檢視檔案和資料夾大小 刪除日誌 - CS408 - 部落格園https://www.cnblogs.com/lixuwu/p/5944062.html#_label0 linux檢視目錄大小 - CSDN部落格https://blog.csdn.net/learner19

Linux命令學習建立刪除檔案、資料夾的命令

今天學習了幾個命令,是建立、刪除檔案和資料夾的,在linux裡,資料夾是目錄,下面說下我學習的命令。 建立資料夾【mkdir】   一、mkdir命令使用許可權     所有使用者都可以在終端使用 mkdir

每天一個Linux命令】01. Linux中ping命令的用法

PING: PING (Packet Internet Grope),因特網包探索器 功能說明: 檢測網路的連通性:ping可以測試計算機名和計算機的 ip 地址,驗證與遠端計算機的連線,通過將 icmp 回顯資料包傳送到計算機並偵聽回顯回覆資料包來驗證與一臺

Linuxfile命令顯示自定義檔案型別

修改 magic 檔案後,可用 file 命令顯示自定義檔案型別資訊。 man magic 說明了magic檔案的編寫規則和所在目錄,一般是 /ect/magic 或 /usr/share/file/magic。 舉例如下 : 例1:檔案的前四個位元組