
- Unix/Linux 初學者指南
- Unix/Linux - 主頁
- Unix/Linux - 什麼是 Linux?
- Unix/Linux - 入門
- Unix/Linux - 檔案管理
- Unix/Linux - 目錄
- Unix/Linux - 檔案許可權
- Unix/Linux - 環境
- Unix/Linux - 基本實用程式
- Unix/Linux - 管道和過濾器
- Unix/Linux - 程序
- Unix/Linux - 通訊
- Unix/Linux - vi 編輯器
- Unix/Linux Shell 程式設計
- Unix/Linux - Shell 指令碼
- Unix/Linux - 什麼是 Shell?
- Unix/Linux - 使用變數
- Unix/Linux - 特殊變數
- Unix/Linux - 使用陣列
- Unix/Linux - 基本運算子
- Unix/Linux - 決策
- Unix/Linux - Shell 迴圈
- Unix/Linux - 迴圈控制
- Unix/Linux - Shell 替換
- Unix/Linux - 引號機制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函式
- Unix/Linux - 手冊頁幫助
- 高階 Unix/Linux
- Unix/Linux - 標準 I/O 流
- Unix/Linux - 檔案連結
- Unix/Linux - 正則表示式
- Unix/Linux - 檔案系統基礎
- Unix/Linux - 使用者管理
- Unix/Linux - 系統性能
- Unix/Linux - 系統日誌
- Unix/Linux - 訊號和陷阱
Linux - 目錄
Linux 目錄是一個檔案,其唯一作用是儲存檔名和相關資訊。所有檔案,無論是普通檔案、特殊檔案還是目錄檔案,都包含在目錄中。
本教程將詳細討論 Linux/Unix 中的目錄管理。
Linux 使用分層結構來組織檔案和目錄。這種結構通常稱為目錄樹。樹有一個根節點,即斜槓字元 (/),所有其他目錄都包含在其下方。
Linux 目錄結構
檔案系統的最高級別是 / 或根目錄。所有其他檔案和目錄都存在於根目錄下。以下是直接位於根 (/) 目錄下的常用目錄列表
目錄 | 描述 |
---|---|
/bin |
重要的二進位制應用程式 |
/boot |
引導配置文檔案、核心以及啟動時需要的其他檔案。 |
/dev |
系統裝置檔案。 |
/etc |
配置檔案、啟動指令碼等。 |
/home |
不同使用者的家目錄列表 |
/lib |
系統庫、共享庫 |
/lost+found |
用於存在於根 (/) 目錄下的檔案的 lost+found 系統 |
/media |
硬碟驅動器和可移動介質(如 CD、數碼相機等)上自動掛載(載入)的分割槽。 |
/mnt |
硬碟驅動器上手動掛載的檔案系統 |
/opt |
要安裝的第三方應用程式 |
/proc |
維護有關係統狀態的資訊,包括當前正在執行的程序。 |
/root |
root 使用者的家目錄。 |
/sbin |
重要的系統二進位制檔案 |
/srv |
包含提供給其他系統的檔案 |
/sys |
系統檔案 |
/tmp |
臨時檔案 |
/usr |
應用程式和檔案,大多數使用者都可以訪問 |
/var |
可變檔案,例如日誌和資料庫 |
家目錄
您首次登入時所在的目錄稱為您的家目錄。您將在您的家目錄和您將建立的子目錄中完成大部分工作,以組織您的檔案。
您可以隨時使用以下命令進入您的家目錄:
$cd ~ $
這裡 ~ 表示家目錄。假設您必須進入其他使用者的家目錄,請使用以下命令:
$cd ~username $
要進入您的上一個目錄,可以使用以下命令:
$cd - $
絕對/相對路徑名
目錄以根 (/) 作為頂層進行分層排列。任何檔案在層次結構中的位置都由其路徑名描述。
路徑名的元素由 / 分隔。如果路徑名相對於根進行描述,則該路徑名是絕對的,因此絕對路徑名始終以 / 開頭。
以下是一些絕對檔名示例。
/etc/passwd /users/sjones/chem/notes /dev/rdsk/Os3
路徑名也可以相對於您當前的工作目錄。相對路徑名從不以 / 開頭。相對於使用者 amrood 的家目錄,一些路徑名可能如下所示:
../chem/notes personal/res
這裡 ../ 表示從當前工作目錄後退一級,然後您將找到 chem/notes。要隨時確定您在檔案系統層次結構中的位置,請輸入命令 pwd 以列印當前工作目錄:
$pwd /user0/home/amrood $
列出目錄
要列出目錄中的檔案,可以使用以下語法:
$ls dirname
以下是如何列出 /usr/local 目錄中所有檔案的示例:
$ls /usr/local X11 bin gimp jikes sbin ace doc include lib share atalk etc info man ami
建立目錄
我們現在將瞭解如何建立目錄。目錄由以下命令建立:
$mkdir dirname
這裡,directory 是您要建立的目錄的絕對或相對路徑名。例如,命令:
$mkdir mydir $
在當前目錄中建立目錄 mydir。以下是一個示例:
$mkdir /tmp/test-dir $
此命令在 /tmp 目錄中建立目錄 test-dir。如果 mkdir 成功建立請求的目錄,則不會產生任何輸出。
如果在命令列上給出多個目錄,則 mkdir 會建立每個目錄。例如:
$mkdir docs pub $
在當前目錄下建立目錄 docs 和 pub。
建立父目錄
我們現在將瞭解如何建立父目錄。有時,當您要建立目錄時,其父目錄或目錄可能不存在。在這種情況下,mkdir 會發出以下錯誤訊息:
$mkdir /tmp/amrood/test mkdir: Failed to make directory "/tmp/amrood/test"; No such file or directory $
在這種情況下,您可以為 mkdir 命令指定 -p 選項。它會為您建立所有必要的目錄。例如:
$mkdir -p /tmp/amrood/test $
上述命令建立所有必需的父目錄。
刪除目錄
可以使用以下 rmdir 命令刪除目錄:
$rmdir dirname $
注意 - 要刪除目錄,請確保它為空,這意味著該目錄中不應該有任何檔案或子目錄。
您可以一次刪除多個目錄,如下所示:
$rmdir dirname1 dirname2 dirname3 $
如果目錄 dirname1、dirname2 和 dirname3 為空,則上述命令會刪除這些目錄。如果 rmdir 命令成功,則不會產生任何輸出。
更改目錄
您可以使用 cd 命令執行的操作不僅僅是更改為家目錄。您可以透過指定有效的絕對或相對路徑來使用它更改為任何目錄。語法如下所示:
$cd dirname $
這裡,dirname 是您要更改到的目錄的名稱。例如,命令:
$cd /usr/local/bin $
更改到目錄 /usr/local/bin。從此目錄,您可以使用以下相對路徑 cd 到目錄 /usr/home/amrood:
$cd ../../home/amrood $
重新命名目錄
mv(移動) 命令也可以用來重新命名目錄。語法如下:
$mv olddir newdir $
您可以將目錄 mydir 重新命名為 yourdir,如下所示:
$mv mydir yourdir $
目錄 .(點)和 ..(點點)
檔名 .(點)表示當前工作目錄;檔名 ..(點點)表示當前工作目錄上一級的目錄,通常稱為父目錄。
如果我們輸入命令以顯示當前工作目錄/檔案的列表,並使用 -a 選項列出所有檔案,並使用 -l 選項提供長列表,我們將收到以下結果。
$ls -la drwxrwxr-x 4 teacher class 2048 Jul 16 17.56 . drwxr-xr-x 60 root 1536 Jul 13 14:18 .. ---------- 1 teacher class 4210 May 1 08:27 .profile -rwxr-xr-x 1 teacher class 1948 May 12 13:42 memo $