Linux 文件與目錄管理詳解

一、目錄樹

在 Linux 底下,所有的文件與目錄都是由根目錄開始的。

根目錄是所有目錄與文件的源頭,再一個一個的分支下來,有點像是樹枝狀。

因此,我們也稱這種目錄配置方式為:『目錄樹(directory tree)』。

他主要的特性有:

 目錄樹的啟始點為根目錄 (/, root);

 每一個目錄不止能使用本地端的 partition 的文件系統,也可以使用網絡上的

filesystem 。(NFS)

如果我們將整個目錄樹以圖標的方法來顯示,並且將較為重要的文件數據列出來的話,

那麼目錄樹架構有點像這樣:

Linux 文件與目錄管理詳解

二、、絕對路徑與相對路徑

除了需要特別注意的 FHS 目錄配置外,在文件名部分我們也要特別注意喔!因為根據

檔名寫法的不同,也可將所謂的路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。

1. 絕對路徑

大家都知道,在我們平時使用計算機時要找到需要的文件就必須知道文件的位置,而表

示文件的位置的方式就是路徑。

絕對路徑就是文件或目錄在硬盤上真正的路徑。 絕對路徑名稱表示的文件在文件系統

裡面唯一的名稱。

例如,只要看到這個路徑:"D:\ORACLE\OCP.doc"我們就知道"OCP.doc"文件是在 D

盤的"ORACLE"目錄中。類似於這樣完整的描述文件位置的路徑就是絕對路徑。

在 linux 裡面一樣,/study/oracle/ocp/test.txt 通過這個目錄呢我們就可以知道 test.txt

在根目錄(/)下的 study 子目錄下的 oracle 目錄。我們可以用 cd /study/oracle/ocp 通過

這個絕對路徑的方式去查看到這個文件。

2. 相對路徑

相對路徑是一個相對性的對於絕對路徑來說的。

絕對路徑其實可以這麼理解,既然我們在目錄下,我要去到本目錄下的其他子目錄可以

直達其他子目錄的名字,而不需要經過本目錄的再回到你想要的目錄裡面。

比如說:我現在在/opt 下。然後/opt 下有個 oracle 目錄,也就是說我現在的絕對目錄是在/opt/oracle 下。然而,在/opt 下也有一個 ocp 目錄就是說 ocp 絕對路徑是/opt/ocp。那麼我現在已經在/etc 目錄下了。然而我們就可以同 cd ocp 去到同在/etc 下的 ocp 而不需要打入常常的一條/etc/ocp 的絕對路徑去進入了。

幾個特殊目錄:

Linux 文件與目錄管理詳解

三、Linux 目錄結構

1. FHS

因為利用 Linux 來開發產品或 distributions 的社群/公司與個人實在太多了, 如果每個

人都用自己的想法來配置文件放置的目錄,那麼將可能造成很多管理上的困擾。因此制訂了 Filesystem Hierarchy Standard (FHS)文件系統層次標準。

根據 FHS的官方文件指出, 他們的主要目的是希望讓使用者可以瞭解到已安裝軟件通常放置於那個目錄下, 所以他們希望獨立的軟件開發商、操作系統製作者、以及想要維護系統的用戶,都能夠遵循 FHS 的標準。 也就是說,FHS的重點在於規範每個特定的目錄下應該要放置什麼樣子的數據而已。 這樣做好處非常多,

因為 Linux 操作系統就能夠在既有的面貌下(目錄架構不變)發展出開發者想要的獨特風格。

事實上,FHS 是根據過去的經驗一直再持續的改版的,FHS 依據文件系統使用的頻繁與否與是否允許使用者隨意更動, 而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:

Linux 文件與目錄管理詳解

事實上,FHS 針對目錄樹架構僅定義出三層目錄底下應該放置什麼數據而已,分別是底下

這三個目錄的定義:

 / (root, 根目錄):與開機系統有關;

 /usr (unix software resource):與軟件安裝/執行有關;

 /var (variable):與系統運作過程有關

2 Linux 重要的目錄

Linux 文件與目錄管理詳解

Linux 文件與目錄管理詳解

四、有關目錄的命令

1. 查看幫助

[root@oracle ~]# man cd //查看 cd 指令的幫助文檔

2. 顯示當前工作目錄

[root@oracle ~]# pwd

/root

3. 列出當前目錄下的內容:ls

[root@oracle ~]# ls [-aAdfFhilnrRSt] 目錄名稱

[root@oracle ~]# ls [--color={never,auto,always}] 目錄名稱

[root@oracle ~]# ls [--full-time] 目錄名稱

選項與參數:

-a :全部的文件,連同隱藏檔( 開頭為 . 的文件) 一起列出來(常用)
-A :全部的文件,連同隱藏檔,但不包括 . 與 .. 這兩個目錄
-d :僅列出目錄本身,而不是列出目錄內的文件數據(常用)
-l :長數據串列出,包含文件的屬性與權限等等數據;(常用)(ll)
-n :列出 UID 與 GID 而非使用者與群組的名稱 (UID 與 GID 會在帳號管理提到!)

-r :將排序結果反向輸出,例如:原本檔名由小到大,反向則為由大到小;
-R :連同子目錄內容一起列出來,等於該目錄下的所有文件都會顯示出來;
-S :以文件容量大小排序,而不是用檔名排序;
-t :依時間排序,而不是用檔名。

4. 切換目錄

[root@oracle ~]# cd / //切換到根目錄

5. 創建目錄

[root@oracle ~]# mkdir oracle //在當前目錄下創建 oracle 目錄

選項與參數:

-m :對新建目錄設置存取權限,也可以用 chmod 命令設置
-p :可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將
自動建立好那些尚不存在的目錄,即一次可以建立多個目錄(級聯創建)

[root@oracle ~]# mkdir -p study/oracle/OC{A,P,M}

//在當前目錄下創建 study 目錄,在 study 目錄下創建 oracle 目錄,oracle 目錄下創建

OCA、OCP、OCM 目錄

6. 刪除目錄

[root@oracle ~]# rmdir oracle //刪除 oracle 目錄

7. 創建文件

[root@oracle ~]# touch oracle //創建名為 oracle 的文件

8. 刪除文件/目錄

[root@oracle ~]# rm oracle //刪除名為 oracle 的文件

選項與參數:

-i :刪除前逐一詢問確認。
-f :即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-r :將目錄及以下之檔案亦逐一刪除。

[root@oracle ~]# rm *.log //刪除所有以“.log”結尾的文件

[root@oracle ~]# rm -rf oracle/ //刪除 oracle 目錄並級聯刪除 oracle 目錄內的檔案

9. 移動文件/目錄

[root@oracle ~]# mv oracle /opt //將檔案 oracle 移動至目錄/opt 下

10. 拷貝文件/目錄

[root@oracle ~]# cp [-adfilprsu] 來源檔(source) 目標檔(destination)

[root@oracle ~]# cp [options] source1 source2 source3 .... directory

選項與參數:

-a :相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用)
-d :若來源檔為連結檔的屬性(link file),則複製連結檔屬性而非文件本身;
-i :若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
-p :連同文件的屬性一起復制過去,而非使用默認屬性(備份常用);
-r :遞迴持續複製,用於目錄的複製行為;(常用)

最後需要注意的,如果來源檔有兩個以上,則最後一個目的檔一定要是『目錄』才行!

11. 打開文件

[root@oracle ~]# more oracle.log

[root@oracle ~]# less oracle.log

[root@oracle ~]# tail -20f oracle.log //文件尾部輸出

[root@oracle ~]# cat oracle.log


後面會分享更多linux運維方面的內容,感興趣的朋友可以關注下!!

Linux 文件與目錄管理詳解


分享到:


相關文章: