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
$
廣告