- 最常用的五個命令(cp — 複製文件和目錄 mv — 移動/重命名文件和目錄 mkdir — 創建目錄 rm — 刪除文件和目錄 ln — 創建硬鏈接和符號鏈接)
- 通配符詳解
常用字符類通配符 意義 * 匹配任意多個字符(包括零個或一個) 注:這是任意的意思 ? 匹配任意一個字符(不包括零個) 注:這個叫做佔位符 [characters] 匹配任意一個屬於字符集中的字符 注:[ab]符合一個即可 [!characters] 匹配任意一個不是字符集中的字符 注:[!ab]符合不是ab即可 [[:class:]] 匹配任意一個屬於指定字符類中的字符 注:[[:lower:]ab]多了一個形式而已
通配符範例字符類 意義 [:alnum:] 匹配任意一個字母或數字 [:alpha:] 匹配任意一個字母 [:digit:] 匹配任意一個數字 [:lower:] 匹配任意一個小寫字母 [:upper:] 匹配任意一個大寫字母 模式 匹配對象 * 所有文件 g* 文件名以“g”開頭的文件 b*.txt 以"b"開頭,中間有零個或任意多個字符,並以".txt"結尾的文件 Data??? 以“Data”開頭,其後緊接着3個字符的文件 [abc]* 文件名以"a","b",或"c"開頭的文件 BACKUP.[0-9][0-9][0-9] 以"BACKUP."開頭,並緊接着3個數字的文件 [[:upper:]]* 以大寫字母開頭的文件 [![:digit:]]* 不以數字開頭的文件 *[[:lower:]123] 文件名以小寫字母結尾,或以 “1”,“2”,或 “3” 結尾的文件 - mkdir - 創建目錄 (mkdir directory... 注:當有三個圓點跟在一個命令的參數後面, 這意味着那個參數可以重複)
- cp - 複製文件和目錄(cp item item 和 cp item... directory)
cp範例-a, --archive 複製文件和目錄,以及它們的屬性,包括所有權和權限。 通常,副本具有用戶所操作文件的默認屬性。 -i, --interactive 在重寫已存在文件之前,提示用戶確認。如果這個選項不指定, cp 命令會默認重寫文件。 -r, --recursive 遞歸地複製目錄及目錄中的內容。當複製目錄時, 需要這個選項(或者-a 選項)。 -u, --update 當把文件從一個目錄複製到另一個目錄時,僅複製 目標目錄中不存在的文件,或者是文件內容新於目標目錄中已經存在的文件。 -v, --verbose 顯示翔實的命令操作信息 cp file1 file2 複製文件 file1 內容到文件 file2。如果 file2 已經存在, file2 的內容會被 file1 的內容重寫。如果 file2 不存在,則會創建 file2。 cp -i file1 file2 這條命令和上面的命令一樣,除了如果文件 file2 存在的話,在文件 file2 被重寫之前, 會提示用戶確認信息。 cp file1 file2 dir1 複製文件 file1 和文件 file2 到目錄 dir1。目錄 dir1 必須存在。 cp dir1/* dir2 使用一個通配符,在目錄 dir1 中的所有文件都被複制到目錄 dir2 中。 dir2 必須已經存在。 cp -r dir1 dir2 複製目錄 dir1 中的內容到目錄 dir2。如果目錄 dir2 不存在, 創建目錄 dir2,操作完成後,目錄 dir2 中的內容和 dir1 中的一樣。 如果目錄 dir2 存在,則目錄 dir1 (和目錄中的內容)將會被複制到 dir2 中。 - mv 移動和重命名文件(cp item item 和 cp item... directory)
mv範例選項 意義 -i --interactive 在重寫一個已經存在的文件之前,提示用戶確認信息。 如果不指定這個選項,mv 命令會默認重寫文件內容。 -u --update 當把文件從一個目錄移動另一個目錄時,只是移動不存在的文件, 或者文件內容新於目標目錄相對應文件的內容。 -v --verbose 當操作 mv 命令時,顯示翔實的操作信息。 mv file1 file2 移動 file1 到 file2。如果 file2 存在,它的內容會被 file1 的內容重寫。 如果 file2 不存在,則創建 file2。 這兩種情況下,file1 都不再存在。 mv -i file1 file2 除了如果 file2 存在的話,在 file2 被重寫之前,用戶會得到 提示信息外,這個和上面的選項一樣。 mv file1 file2 dir1 移動 file1 和 file2 到目錄 dir1 中。dir1 必須已經存在。 mv dir1 dir2 如果目錄 dir2 不存在,創建目錄 dir2,並且移動目錄 dir1 的內容到 目錄 dir2 中,同時刪除目錄 dir1。如果目錄 dir2 存在,移動目錄 dir1(及它的內容)到目錄 dir2。 - rm - 刪除文件和目錄(rm item...)
rm實例選項 意義 -i, --interactive 在刪除已存在的文件前,提示用戶確認信息。 如果不指定這個選項,rm 會默默地刪除文件 -r, --recursive 遞歸地刪除文件,這意味着,如果要刪除一個目錄,而此目錄 又包含子目錄,那麼子目錄也會被刪除。要刪除一個目錄,必須指定這個選項。 -f, --force 忽視不存在的文件,不顯示提示信息。這選項覆蓋了“--interactive”選項。注:與提示相反,強制執行。 -v, --verbose 在執行 rm 命令時,顯示翔實的操作信息。 命令 運行結果 rm file1 默默地刪除文件 rm -i file1 除了在刪除文件之前,提示用戶確認信息之外,和上面的命令作用一樣。 rm -r file1 dir1 刪除文件 file1, 目錄 dir1,及 dir1 中的內容。 rm -rf file1 dir1 同上,除了如果文件 file1,或目錄 dir1 不存在的話,rm 仍會繼續執行。 - rm 注意事項(必須先用ls命令來測試通配符。知道刪除的是啥,然後再代替ls爲rm重新調用。否則慎用)
- ln - 創建鏈接(ln file link 和 ln -s ite link 硬鏈接侷限性:不能鏈接文件和文件系統之外的文件)
- 實戰演練(創建遊戲場)
[me@linuxbox ~]$ cd [me@linuxbox ~]$ mkdir playground [me@linuxbox ~]$ cd playground [me@linuxbox playground]$ mkdir dir1 dir2 [me@linuxbox playground]$ cp /etc/passwd . [me@linuxbox playground]$ ls -l total 12 drwxrwxr-x 2 me me 4096 2008-01-10 16:40 dir1 drwxrwxr-x 2 me me 4096 2008-01-10 16:40 dir2 -rw-r--r-- 1 me me 1650 2008-01-10 16:07 passwd [me@linuxbox playground]$ cp -v /etc/passwd . `/etc/passwd' -> `./passwd' [me@linuxbox playground]$ cp -i /etc/passwd . cp: overwrite `./passwd'? [me@linuxbox playground]$ mv passwd fun [me@linuxbox playground]$ mv fun dir1 [me@linuxbox playground]$ mv dir1/fun dir2 [me@linuxbox playground]$ mv dir2/fun . [me@linuxbox playground]$ mv fun dir1 [me@linuxbox playground]$ mv dir1 dir2 [me@linuxbox playground]$ ls -l dir2 total 4 drwxrwxr-x 2 me me 4096 2008-01-11 06:06 dir1 [me@linuxbox playground]$ ls -l dir2/dir1 total 4 -rw-r--r-- 1 me me 1650 2008-01-10 16:33 fun [me@linuxbox playground]$ mv dir2/dir1 . [me@linuxbox playground]$ mv dir1/fun . [me@linuxbox playground]$ ln fun fun-hard [me@linuxbox playground]$ ln fun dir1/fun-hard [me@linuxbox playground]$ ln fun dir2/fun-hard [me@linuxbox playground]$ ls -l total 16 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir1 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir2 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard [me@linuxbox playground]$ ls -li total 16 12353539 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir1 12353540 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir2 12353538 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun 12353538 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard [me@linuxbox playground]$ ln -s fun fun-sym [me@linuxbox playground]$ ln -s ../fun dir1/fun-sym [me@linuxbox playground]$ ln -s ../fun dir2/fun-sym [me@linuxbox playground]$ ls -l dir1 total 4 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard lrwxrwxrwx 1 me me 6 2008-01-15 15:17 fun-sym -> ../fun [me@linuxbox playground]$ ln -s dir1 dir1-sym [me@linuxbox playground]$ ls -l total 16 ...省略 [me@linuxbox playground]$ rm fun-hard [me@linuxbox playground]$ ls -l total 12 ...省略 [me@linuxbox playground]$ rm -i fun rm: remove regular file `fun'? [me@linuxbox playground]$ ls -l total 8 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir1 lrwxrwxrwx 1 me me 4 2008-01-16 14:45 dir1-sym -> dir1 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir2 lrwxrwxrwx 1 me me 3 2008-01-15 15:15 fun-sym -> fun [me@linuxbox playground]$ less fun-sym fun-sym: No such file or directory [me@linuxbox playground]$ rm fun-sym dir1-sym [me@linuxbox playground]$ ls -l total 8 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir1 drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir2 [me@linuxbox playground]$ cd [me@linuxbox ~]$ rm -r playground
- 如何識別硬鏈接是相同的文件。(ls -li 文件名 i 會顯示 inode 節點信息。相同文件inode一樣)
4.操作文件與目錄(快樂的Linux命令行)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.