絕對路徑和相對路徑
文件和目錄名可以是絕對的频蛔,這表示名稱以 /
開頭。
也可以相對于當前工作目錄,這表示不是以 /
開頭蛤织。
文件或目錄的絕對路徑的組成為:
在 0 個或多個目錄名后附加一個 /艺挪,其中每個目錄名的后面都有一個 /不翩,然后是一個最終文件名。
列出詳細內(nèi)容
在一臺存儲設備中麻裳,文件或目錄被包含到一個塊(block)組合中口蝠。有關文件的信息被包含在一個索引節(jié)點(inode)中,其中記錄如下信息:所有者津坑、最后一次訪問文件的時間妙蔗、文件大小、是否為目錄以及誰可以讀取或?qū)懭霐?shù)據(jù)疆瑰。inode 編號也被稱為文件序列號(file serial number)眉反,并且在一個特定文件系統(tǒng)中是唯一的。我們可以使用-l
(或--format=long
)選項來顯示存儲在 inode 中的某些信息穆役。
默認情況下寸五,ls 命令不會列出特殊文件,這些文件的文件名以點號 (.) 開頭耿币。除根目錄外的所有目錄都至少包含兩個特殊條目:目錄本身 (.) 和父目錄 (..)梳杏。根目錄沒有父目錄。
[ian@echidna lpi103-2]$ ls -al
total 52
drwxrwxr-x. 2 ian ian 4096 2009-08-11 21:21 .
drwx------. 35 ian ian 4096 2009-08-12 10:55 ..
-rw-rw-r--. 1 ian ian 8 2009-08-11 21:17 sedtab
-rw-rw-r--. 1 ian ian 24 2009-08-11 14:02 text1
-rw-rw-r--. 1 ian ian 25 2009-08-11 14:27 text2
-rw-rw-r--. 1 ian ian 63 2009-08-11 15:41 text3
-rw-rw-r--. 1 ian ian 26 2009-08-11 15:42 text4
-rw-rw-r--. 1 ian ian 24 2009-08-11 18:47 text5
-rw-rw-r--. 1 ian ian 98 2009-08-11 21:21 text6
-rw-rw-r--. 1 ian ian 15 2009-08-11 14:41 xaa
-rw-rw-r--. 1 ian ian 9 2009-08-11 14:41 xab
-rw-rw-r--. 1 ian ian 17 2009-08-11 14:41 yaa
-rw-rw-r--. 1 ian ian 8 2009-08-11 14:41 yab
第一個字段(本例中為 drwxrwxr-x 或 -rw-rw-r--)告訴我們淹接,文件是一個目錄 (d) 還是一個普通文件 (-)十性。類型之后是針對所有者、所有者所在組的成員塑悼、每一個成員的三組特權劲适。這三個值分別表示用戶、組厢蒜、組成員是否擁有讀 (r)霞势、寫 (w) 或 (x) 執(zhí)行權限烹植。
下一個字段是一個數(shù)字,告訴我們文件的硬鏈接的數(shù)量支示。inode 包含有關文件的信息刊橘。文件的目錄條目包含到文件的 inode 的硬鏈接(或指針),因此列出的每個條目都應該至少擁有一個硬鏈接颂鸿。目錄條目對 . 條目和每個子目錄條目使用另外的硬鏈接促绵。使用 .. 表示的主目錄有大量子目錄,因此包含 35 個硬鏈接嘴纺。
接下來兩個字段分別為文件的所有者和所有者的主組败晴。
下一個字段包含文件的長度,以字節(jié)為單位栽渴〖饫ぃ可以通過增加
h
選項使得輸出的文件大小帶有單位。倒數(shù)第二個字段包含最后一次修改的時間戳闲擦。
最后一個字段包含文件或目錄的名稱慢味。
ls -i
命令可以顯示 inode 號。
ls -t
將按照修改時間排序(從最新到最舊)
ls -lS
將生成一個按大小排序的長列表(從最大到最惺洹)纯路。添加-r
將反向排序。
復制寞忿、移動和刪除文件
- cp 用于復制一個或多個文件或目錄驰唬。您必須提供一個(或多個)源名和一個目標名。源名或目標名可能包含一個路徑腔彰。
說明:
- 如果目標是一個現(xiàn)有目錄叫编,那么所有源將被復制到目標中。
- 如果目錄是一個不存在的目錄霹抛,那么(單一)源也必須為一個目錄搓逾,并且源目錄的副本及其內(nèi)容使用目標名作為新名稱。
- 如果目標是一個文件杯拐,那么(單一)源必須也為文件霞篡,而源文件的副本使用目標名作為新名,替換任何現(xiàn)有的具有相同名稱的文件藕施。
mv
用于移動或重命名一個或多個文件或目錄寇损。通常使用的名稱遵循使用cp 執(zhí)行復制的相同規(guī)則凸郑;可以重命名一個文件或?qū)⒁唤M文件移動到一個新目錄中裳食。因為名稱只是一個鏈接到 inode 的目錄條目,對 inode 數(shù)量沒有改變不應感到奇怪芙沥,除非該文件移動到另一個文件系統(tǒng)中诲祸,在這種情況下浊吏,移動它的行為更像在復制之后刪除原始文件。rm 用于刪除一個或多個文件救氯。
下面是關于文件inode的一個實例:
ian@Z61t-u14:~/lpi103-2$ cp text1 text1.bkp
ian@Z61t-u14:~/lpi103-2$ mkdir backup
ian@Z61t-u14:~/lpi103-2$ cp text1 backup/text1.bkp.2
ian@Z61t-u14:~/lpi103-2$ ls -i text1 text1.bkp backup
787425 text1 787445 text1.bkp
backup:
787447 text1.bkp.2
ian@Z61t-u14:~/lpi103-2$
mv text1.bkp backup
ian@Z61t-u14:~/lpi103-2$
mv backup/text1.bkp backup/text1.bkp.1
ian@Z61t-u14:~/lpi103-2$
ls -i text1 text1.bkp backup
ls: cannot access text1.bkp: No such file or directory
787425 text1
backup:
787445 text1.bkp.1 787447 text1.bkp.2
通常找田,cp 命令會復制一個文件來覆蓋現(xiàn)有副本,只要現(xiàn)有文件是可寫的着憨。另一方面墩衙,如果目標存在,mv 就不會移動或重命名文件甲抖。
有一些與 cp 和mv 的這一行為相關的有用選項漆改。
**-f 或--force **
導致cp 嘗試刪除現(xiàn)有目標文件,即使該文件是不可寫的准谚。
**-i 或--interactive **
要求在嘗試替換現(xiàn)有文件之前進行確認挫剑。
**-b 或--backup **
對任何要替換的文件進行備份。
ian@Z61t-u14:~/lpi103-2$ cp text2 backup
ian@Z61t-u14:~/lpi103-2$ cp --backup=t text2 backup
ian@Z61t-u14:~/lpi103-2$ ls backup
text1.bkp.1 text1.bkp.2 text2 text2.~1~
ian@Z61t-u14:~/lpi103-2$
rm backup/text2 backup/text2.~1~
ian@Z61t-u14:~/lpi103-2$ ls backup
text1.bkp.1 text1.bkp.2
cp 命令默認情況下為新文件創(chuàng)建了一個新時間戳柱衔。所有者和組也被設置為執(zhí)行復制的用戶的所有者和組樊破。可以使用-p 選項保留選定的屬性唆铐。請注意哲戚,根用戶可能是唯一可以保留所有權的用戶。
創(chuàng)建和刪除目錄
- Mkdir 創(chuàng)建目錄
如果您想創(chuàng)建嵌套的子目錄或链,比如 d1/d2/d3惫恼,可能會失敗,因為 d1 和 d2 目錄不存在澳盐, 這個時候可以使用-p
選項來創(chuàng)建祈纯。