第十課(八) 目錄的創建與刪除命令
mkdir命令
功能:創建一個目錄(類似DOS下的md命令)。
語法:mkdir [選項] dirname
說明:該命令創建由dirname命名的目錄。要求創建目錄的用戶在當前目錄中(dirname的父目錄中)具有寫權限,並且dirname不能是當前目錄中已有的目錄或文件名稱。
命令中各選項的含義為:
- m 對新建目錄設置存取權限。也可以用chmod命令設置。
- p 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在, 加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。
例如:在當前目錄中建立inin 和inin下的/mail目錄,也就是連續建兩個目錄。
$ mkdir - p - m 700 ./inin/mail/
該命令的執行結果是在當前目錄中創建嵌套的目錄層次inin /mail,權限設置為只有文件主有讀、寫和執行權限。
rmdir 命令
功能:刪除空目錄。
語法:rmdir [選項] dirname
說明:dirname表示目錄名。該命令從一個目錄中刪除一個或多個子目錄項。需要特別注意的是,一個目錄被刪除之前必須是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危險性。)刪除某目錄時也必須具有對父目錄的寫權限。
命令中各選項的含義為:
- p 遞歸刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標准輸出上顯示相應的信息。
例如:
$ rmdir - p /usr/xu/txt
將/usr/xu/txt目錄刪除。
改變工作目錄、顯示目錄內容命令
cd 命令
功能:改變工作目錄。
語法:cd [Directory]
說明:該命令將當前目錄改變至directory所指定的目錄。若沒有指定directory,則回到用戶的主目錄。為了改變到指定目錄,用戶必須擁有對指定目錄的執行和讀權限。
該命令可以使用通配符(通配符含義請參見第十章)。
例如:假設用戶當前目錄是:/home/xu,現需要更換到/home/xu/pro目錄中,
$ cd pro
此時,用戶可以執行pwd命令來顯示工作目錄。
$ pwd
/home/xu/pro
pwd 命令
在Linux層次目錄結構中,用戶可以在被授權的任意目錄下利用mkdir命令創建新目錄,也可以利用cd命令從一個目錄轉換到另一個目錄。然而,沒有提示符來告知用戶目前處於哪一個目錄中。要想知道當前所處的目錄,可以使用pwd命令,該命令顯示整個路徑名。
語法:pwd
說明:此命令顯示出當前工作目錄的絕對路徑。
例:$ pwd
/home/xu
顯示的路徑名為/home/xu,每個目錄名都用“/”隔開,根目錄以開頭的“/”表示。
ls 命令
ls是英文單詞list的簡寫,其功能為列出目錄的內容。這是用戶最常用的一個命令之一,因為用戶需要不時地查看某個目錄的內容。該命令類似於DOS下的dir命令。
語法:ls [選項] [目錄或是文件]
對於每個目錄,該命令將列出其中的所有子目錄與文件。對於每個文件,ls將輸出其文件名以及所要求的其他信息。默認情況下,輸出條目按字母順序排序。當未給出目錄名或是文件名時,就顯示當前目錄的信息。
命令中各選項的含義如下:
- a 顯示指定目錄下所有子目錄與文件,包括隱藏文件。
- A 顯示指定目錄下所有子目錄與文件,包括隱藏文件。但不列出“.”和“..”。
- b 對文件名中的不可顯示字符用八進制逃逸字符顯示。
- c 按文件的修改時間排序。
- C 分成多列顯示各項。
- d 如果參數是目錄,只顯示其名稱而不顯示其下的各文件。往往與l選項一起使用,以得到目錄的詳細信息。
- f 不排序。該選項將使lts選項失效,並使aU選項有效。
- F 在目錄名後面標記“/”,可執行文件後面標記“*”,符號鏈接後面標記“@”,管道(或FIFO)後面標記“”,socket文件後面標記“=”。
- i 在輸出的第一列顯示文件的i節點號。
- l 以長格式來顯示文件的詳細信息。這個選項最常用。每行列出的信息依次是:
文件類型與權限 鏈接數 文件屬主 文件屬組 文件大小 建立或最近修改的時間 名字
對於符號鏈接文件,顯示的文件名之後有“—〉”和引用文件路徑名。
對於設備文件,其“文件大小”字段顯示主、次設備號,而不是文件大小。目錄中的總塊數顯示在長格式列表的開頭,其中包含間接塊。
- L 若指定的名稱為一個符號鏈接文件,則顯示鏈接所指向的文件。
- m 輸出按字符流格式,文件跨頁顯示,以逗號分開。
- n 輸出格式與l選項相同,只不過在輸出中文件屬主和屬組是用相應的UID號和GID號來表示,而不是實際的名稱。
- o 與l選項相同,只是不顯示擁有者信息。
- p 在目錄後面加一個“/”。
- q 將文件名中的不可顯示字符用“?”代替。
- r 按字母逆序或最早優先的順序顯示輸出結果。
- R 遞歸式地顯示指定目錄的各個子目錄中的文件。
- s 給出每個目錄項所用的塊數,包括間接塊。
- t 顯示時按修改時間(最近優先)而不是按名字排序。若文件修改時間相同,則按字典順序。修改時間取決於是否使用了c或u選頂。缺省的時間標記是最後一次修改時間。
- u 顯示時按文件上次存取的時間(最近優先)而不是按名字排序。即將-t的時間標記修改為最後一次訪問的時間。
- x 按行顯示出各排序項的信息。
用ls - l命令顯示的信息中,開頭是由10個字符構成的字符串,其中第一個字符表示文件類型,它可以是下述類型之一:
- 普通文件
d 目錄
l 符號鏈接
b 塊設備文件
c 字符設備文件
後面的9個字符表示文件的訪問權限,分為3組,每組3位。第一組表示文件屬主的權限,第二組表示同組用戶的權限,第三組表示其他用戶的權限。每一組的三個字符分別表示對文件的讀、寫和執行權限。
各權限如下所示:
r 讀
w 寫
x 執行。對於目錄,表示進入權限。
s 當文件被執行時,把該文件的UID或GID賦予執行進程的UID(用戶ID)或GID(組ID)。
t 設置標志位(留在內存,不被換出)。如果該文件是目錄,在該目錄中的文件只能被超級用戶、目錄擁有者或文件屬主刪除。如果它是可執行文件,在該文件執行後,指向其正文段的指針仍留在內存。這樣再次執行它時,系統就能更快地裝入該文件。
- 沒有設置權限。
例1:列出當前目錄的內容。
$ ls -F
bin/ lib/ var/
etc/ tmp/ index. Html
例2:列出某個目錄的內容。
$ ls –F /home/xu
Mai1/ map1e/ mm/ ptr/ telnetd*
fd/ mbox mount sobsrc. tgz tmp/
例3:列出某個目錄下所有的文件(包括隱藏文件)。
$ 1s -aF /home/xu
./ . .e1m/ .netscape/ map1e ptr/
../ .fvwin2rc95 .term/ mbox sobsrc. tgz
.Xauthority .kermrc Mai1/ mm/ te1netd*
.bash-history .ncFTP/ fd/ mount tmp/
例4:用長格式列出某個目錄下所有的文件(包括隱藏文件)。
$ 1s -laF /home/xu
total 584
drwxr-xr-x l2 root root 1024 Nov 02 22:07 ./
drwxr-xr-x 15 bbs bbs 1024 Jul 29 07:08 ../
-rw-r--r-- 1 yu users 4343 Ju1 29 22:20 .bash-history
drwx------ 2 yu users 1024 May 17 06:36 .e1m/
--rw------ 1 root root 4628 Jun 2 1l:34 mbox
lrwxrwxrwx 1 root root l4 Ju1 29 03:08 mount->/mnt
drwxrwxr-x 4 root root 1024 Ju1 23 03:43 ptr/
-rw--r--r- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
-rwxr-xr-x l root users 60177 Jun 8 01:29 telnetd*
drwxr-xr-x 2 root root 1024 Mar 6 22:32 tmp/
例5:用長格式列出某個目錄下所有的文件包括隱藏文件和它們的i節點號。並把文件屬主和屬組以UID號和GID號的形式顯示。
$ 1s -1ainF /home/xu
tota1 584
399672 drwxr-xr-x l2 0 0 l024 Nov 30 22:07 ./
333907 drwxr-xr-x 15 9999 99 l024 Ju1 29 07:08 ../
39980l -rw------- l 0 0 0 Jun 2 2:09 .Xauthority
399679 -rw-r--r-- 1 505 l00 4343 Jul 29 22:20 .bash-hist0ry
30l763 drwxr----- 2 505
-rwxr-xr-x l root users 60177 Jun 8 01:29 telnetd*
drwxr-xr-x 2 root root 1024 Mar 6 22:32 tmp/
例5:用長格式列出某個目錄下所有的文件包括隱藏文件和它們的i節點號。並把文件屬主和屬組以UID號和GID號的形式顯示。
$ 1s -1ainF /home/xu
tota1 584
399672 drwxr-xr-x l2 0 0 l024 Nov 30 22:07 ./
333907 drwxr-xr-x 15 9999 99 l024 Ju1 29 07:08 ../
39980l -rw------- l 0 0 0 Jun 2 2:09 .Xauthority
399679 -rw-r--r-- 1 505 l00 4343 Jul 29 22:20 .bash-hist0ry
30l763 drwxr----- 2 505