目錄是一個文件,它的作用是存儲文件的名稱和相關的信息。所有的文件,無論是普通,特殊,或目錄都包含在目錄中。
UNIX 使用層次結構來組織文件和目錄。這種結構通常被稱為一個目錄樹。樹上有一個根節點,斜槓字符 (/),所有其他目錄包含在它之下。
主目錄
主目錄是當您第一次登錄時所在的目錄。
您的大部分工作將在主目錄及您自定義的子目錄中完成。
在任意目錄下執行以下命令可以隨時切換到主目錄:
代碼如下:
$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 includelib share
atalk etc info man ami
創建目錄
通過下面的命令創建目錄:
代碼如下:
$mkdir dirname
在這裡,dirname 是您想要創建的目錄的絕對或相對路徑名。例如,命令:
代碼如下:
$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 和 dirname2,前提是它們是空的。如果成功刪除,rmdir 命令不生成任何輸出。
更改目錄
你可以使用 cd 命令來做比更改主目錄更多的事:你可以使用它來跳轉到任何目錄,其參數為一個有效的絕對或相對路徑。語法如下所示:
代碼如下:
$cd dirname
在這裡,dirname 是你想要跳轉到的目錄的名稱。例如,命令:
代碼如下:
$cd /usr/local/bin
更改目錄 /usr/local/bin。從該目錄,您可以使用下面的相對路徑跳轉到 /usr/home/amrood 目錄:
代碼如下:
$cd ../../home/amrood
重命名目錄
mv ( move ) 命令也可以用於重命名目錄。語法如下所示:
代碼如下:
$mv olddir newdir
您可以重命名目錄 mydir 為 yourdir,如下所示:
代碼如下:
$mv mydir yourdir
目錄 . ( 點 ) 和 .. ( 點點 )
文件名 . ( 點 ) 表示當前的工作目錄;和文件名 .. ( 點點 ) 代表當前工作目錄的上一級,通常被稱為父目錄。
如果我們輸入要顯示的當前工作目錄文件的列表,使用 -a 選項列出所有的文件與 -l 選項提供長列表,這是結果。
代碼如下:
$ls -la
drwxrwxr-x4teacher class 2048 Jul 16 17.56 .
drwxr-xr-x60 root 1536 Jul 13 14:18 ..
----------1teacher class 4210 May 1 08:27 .profile
-rwxr-xr-x1teacher class 1948 May 12 13:42 memo
列出目錄和文件
在 UNIX 中的所有數據被都組織到文件。所有文件被都組織成目錄。這些目錄被組織成一個稱為文件系統的樹狀結構。
您可以使用 ls 命令列出所有的文件或目錄在目錄中。以下是使用 ls 命令與 -l 選項的示例。
代碼如下:
$ ls -l
total 19621
drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml
-rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg
drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ
drwxr-xr-x 2 root root4096 Dec 9 2007 urlspedia
-rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar
drwxr-xr-x 8 root root4096 Nov 25 2007 usr
-rwxr-xr-x 1 root root3192 Nov 25 2007 webthumb.php
-rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar
-rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid
-rw-rw-r-- 1 amrood amrood166255 Aug 9 2007 yourfile.swf
以 d...... 開頭的在這裡表示目錄。例如 uml, univ 和 urlspedia 是目錄,其余的為文件。