UNIX 目錄管理


目錄是一個檔案,其唯一的工作就是儲存檔案的名稱和相關資訊。無論是普通的,特殊的或目錄,包含所有檔案,在目錄中。

UNIX採用了分層結構組織的檔案和目錄。這種結構通常稱為作為一個目錄樹。樹有單個根節點,斜槓字元(/),和所有其他目錄下面都包含它。

主目錄:

目錄中,你會發現自己,當第一次登入時被稱為你的home目錄。

你的工作一般會在你的home目錄,建立組織檔案的目錄和子目錄。

可以去home目錄中隨時使用下面的命令:

$cd ~
$

這裡?表示主目錄。如果想要去的任何其他使用者的主目錄中,然後使用下面的命令:

$cd ~username
$

最後一個目錄,可以使用以下命令:

$cd -
$

絕對/相對路徑名:

目錄都被排列在頂部的根(/)在一個層次。在層次結構中的位置的任何檔案描述由它的路徑名。

用/分隔路徑名的元素。路徑名是絕對的,如果它被描述與根系,所以絕對路徑總是以一個/.

這都是一些例子,絕對檔案名.

/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3

也可以是相對當前工作目錄的路徑名。永遠不會開始以/相對路徑名。相對到使用者amrood'的主目錄,有些路徑名可能看起來像這樣:

chem/notes
personal/res

為了確定您所處的檔案系統的層次結構內的任何時間,輸入命令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

在這裡,目錄是要建立的目錄的絕對或相對路徑名。例如,下面的命令:

$mkdir mydir
$

在當前目錄下建立目錄mydir。這裡是另一個例子:

$mkdir /tmp/test-dir
$

此命令在/ tmp目錄下建立目錄test目錄。 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,dirname2如果它們是空的。 rmdir命令不產生任何輸出,如果它是成功的。

改變目錄:

可以使用cd命令做多變化的主目錄:可以用它來指定一個有效的絕對或相對路徑切換到任意目錄。語法如下:

$cd dirname
$

在這裡,dirname是目錄的名稱。例如,下面的命令:

$cd /usr/local/bin
$

更改到目錄 /usr/local/bin。在這個目錄中,你可以cd到目錄 /usr/home/amrood 使用下面的相對路徑:

$cd ../../home/amrood
$

重新命名目錄:

 mv (move) 命令也可以用來重新命名一個目錄。語法如下:

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