Linux—檔案與目錄管理(1)
阿新 • • 發佈:2019-02-16
Linux一般將檔案可存取的身份分為三個類別(owner/group/others),三種身份各自具有各自的r/w/x許可權。 Linux檔案型別: 1、普通檔案(regular file,符號'-'): a、純文字(ASCII):Linux系統中最多的一種檔案型別;這類檔案內容是我們可以直接讀到的資料(eg:數字、字母)。 b、二進位制檔案(binary file):可執行檔案(scripts,文字型批吃力檔案除外)就是這種型別。 c、資料格式檔案(data file):有些程式在執行的過程中會讀取到某些特定格式的檔案,這些特定檔案可被稱為資料檔案;一般用cat檢視顯示出來的為一堆亂碼。 2、目錄(directory):符號'd'; 3、連線檔案(link):符號'l'; 4、裝置和檔案(device): a、塊裝置檔案:儲存檔案(eg:硬碟、軟盤等),符號'b'; b、字元裝置檔案:串列埠的介面檔案(eg:鍵盤、滑鼠),符號'c'; 5、套接字(sockets):符號's'; 通常用於網路的資料連線。 6、管道(FIFO,pipe):符號'p',是一種特殊的檔案型別,主要目的是解決多個程式同時訪問同一個檔案所造成的錯誤問題(first-in-first-out)。 檔案的型別介紹完了那麼直觀的來感受一下Linux中的檔案。要檢視Linux中的檔案,有一個重要的指令——ls(檢視檔案的指令),使用root身份進入Linux,下達[ls -al]指令,效果如下圖:
第三行前十個字元表示的就是檔案型別許可權,數字表示的是連結數,接下來是檔案的擁有者,檔案所屬的群組,檔案的容量,檔案最後被修改的時間,檔名。下面詳細說明前十個字元。 第一個代表的是該檔案的檔案型別,前面已經介紹過了;然後剩餘的九個字元,依次每三個一組,分別為檔案擁有者、檔案所屬群組、其他人的許可權。許可權總共分為三種,分別為[r]可讀(read)、[w]可寫(write)、[x]可執行(execute)。這三個許可權的位置是固定的不會改變,如果沒有該許可權則會以'-'替代。下面以[..]檔案為例分別介紹 首先、第一個字元為'd'表明該檔案為目錄檔案; 第一組(擁有者許可權):該擁有者可讀、可寫並且可執行; 第二組(通群組許可權):可讀、可執行但是不可寫; 第三組(其他非本群組許可權):可讀、可執行但不可寫。 注意:r/w/x許可權對於目錄與檔案的意義並不相同,這是因為目錄與檔案所記錄的資料內容不相同所至。 許可權對檔案的重要性:檔案是實際含有資料的地方,包括一般文字檔案、資料庫內容檔案、二進位制可執行檔案(binary program)。因此許可權對於檔案來說含義如下: a、[r](read):可取該檔案的實際內容; b、[w](write):可以編輯、新增或者修改該檔案的內容(沒有刪除); c、[x](execute):該檔案可以被系統執行。 許可權對於目錄的重要性:檔案是存放實際資料的“家”,目錄主要的內容在記錄檔名列表。許可權對於目錄的意義如下: a、[r](read contents in directory):表示具有讀取目錄結構列表的許可權,所以當具有(r)許可權時,表示可以查詢該目錄下的檔名資料。 b、[w](modify contents of directory):表示具有異動該目錄列表的許可權,即就是如下許可權: 1、建立新的檔案與目錄; 2、刪除已經存在的檔案與目錄(不論檔案的許可權為何); 3、靜一靜訊在的檔案或目錄進行重新命名; 4、搬移該目錄內的檔案或目錄的位置 c、[x](access directory):目錄是不可以被執行的,目錄的[x]表示的是使用者能否進入該目錄為工作目錄(work directory)的用途。 Linux檔案副檔名: Linux的檔案是沒有所謂的副檔名的,一個檔案能不能被執行取決於它的第一欄的十個屬性,與檔名沒有半毛線錢關係。雖然如此,我們仍然希望可以藉由副檔名來了解該檔案是什麼鬼,所以我們還是需要用適當的副檔名來表示該檔案的型別。 Linux檔案長度限制:使用預設的Ext2/Ext3檔案系統時,針對檔案名長度的限制為 a、單一檔案或目錄的最大容許檔名為255個字元; b、包含完整路徑名及目錄(/)的完整檔案名為4096個字元。 Linux檔名限制:一般來說在設定檔名時,最好可以避免一些特殊符號:* ? > < ; & ! [] \ + - ' " () {};因為這些符號在文字介面下具有特殊的含義;以'.'開頭的檔案為隱藏的。 ls指令: -a:來處目錄下的所有檔案(包括隱藏檔案); -b:把檔名中不可出現的字元用反斜槓加字元編號的形式列出; -c:輸出檔案的i節點的修改時間,並以此排序; -d:將目錄像檔案一樣的顯示,而不是顯示旗下的檔案; -f:-U對輸出的檔案不進行排序; -i:輸出檔案的i節點的索引資訊;eg:ls -ai 指定檔案 -k:以k位元組的形式表示檔案的大小;eg:ls -alk 指定檔案 -l:列出檔案的詳細資訊; -m:橫向輸出檔名,並以","作為分隔 -n:用數字的UID,GID代替名稱; -o:顯示檔案的除組資訊外的詳細資訊; -F:在每個檔名後面附上一個字元以說明檔案的型別,'*'表示可執行的平通檔案;'/'表示目錄;'@'表示符號連結;'|'表示FIFOs;'='表示套接字; -q:用?代替不可輸出的字元; -r:對目錄反向排序; -s:在l檔名後輸出該檔案大小。 -t:以時間排序; -u:以檔案上次被訪問的時間排序; -x:按列輸出,橫向排列; -A:顯示除'.'、'..'外的所有檔案; -B:不輸出以'~'結尾的備份檔案; -C:按列輸出,縱向排列; -G:輸出檔案組的資訊; -L:列出連線檔名而不是連結到的檔案; -N:不限制檔案長度; -Q:把輸出的檔名用”“括起來; -R:列出所有子目錄下的檔案; -S:以檔案大小排序; -X:以檔案的副檔名排序; -1:一行只輸出一個檔案; --color=no:不顯示彩色檔名; --help:在標準輸出上顯示幫助資訊; --version:在標準檔案上輸出版本資訊並退出。 cd命令:用於切換目錄 cd ~:進入使用者目錄; cd -:返回最近訪問目錄; cd ..:返回上級目錄; cd !$:把上個命令的引數作為cd命令的目標引數使用