使用其中一種圖形的檔案管理員,如 Nautilus 與 Konqueror,可以很容易的操作檔案。 它們也可以在 shell 提示符號下操作處理,這樣通常會更快。 這個章節將解釋如何在 shell 提示符號下處理檔案。
您可以使用應用程式(例如文字編輯器),或使用 touch 指令(將會建立一個空白的檔案,讓您可以放入文字或資料)來建立新的檔案。 如要使用 touch 指令建立一個檔案,請在 shell 提示符號下輸入以下指令:
touch <filename> |
用您想要的名稱取代 <filename>。 假如您執行目錄列出,該檔案會包含 0 位元組的資訊,因為它是一個空的檔案。 例如,在 shell 提示符號下輸入 ls -l newfile 指令將會得到以下的輸出:
-rw-rw-r-- 1 sam sam 0 Apr 10 17:09 newfile |
就像許多其他的 Linux 特色,有許多種不同的方式來操作檔案與目錄。 您也可使用萬用字元,例如在 菴 13.11.5 節 中所解釋的,這樣將使得複製、移動或刪除多重檔案與目錄的過程更快。
如要複製一個檔案,請輸入以下指令。
cp <source> <destination> |
使用您想複製的檔名取代 <source>,還有使用您想存放這個檔案的目錄名稱取代 <destination>。
所以,要複製 sneakers.txt 檔案到您家目錄中的 tigger/ 目錄,請先轉換至您的家目錄再輸入:
cp sneakers.txt tigger/ |
您可以將 cp 和相對與絕對路徑一起使用。 我們的家目錄是 tigger 的父目錄; 而 tigger 目錄是我們的家目錄下一層的目錄。
建議 | |
---|---|
如要學習更多關於相對與絕對路徑名稱的資訊,請參考 菴 13.4 節。 |
請閱讀 cp 的 man page (在 shell 提示符號下輸入 man cp),以取得 cp 可使用的所有參數清單。 在這些參數中,您可以使用以下的參數與 cp 一起使用:
-i — 互動式的 (interactive)。 提示您確認當一個檔案即將要覆寫目的地的另一個檔案時。 這是一個好用的參數,因為它可以幫助您避免錯誤的發生。
-r — 遞迴的 (recursive)。 不只是要複製所有指定的檔案與目錄,使用這個參數將複製整個目錄樹與子目錄等全部的東西。
-v — 詳細資訊 (verbose)。 顯示出檔案的複製過程。
現在您有 sneakers.txt 檔案在 tigger 目錄中,使用 cp -i 指令來再度複製這個檔案到相同的位置。
cp -i sneakers.txt tigger cp: overwrite 'tigger/sneakers.txt'? |
要覆寫已經存在的檔案,請按下
要移動檔案,請使用 mv 指令。 要知道更多關於 mv 的資訊,請看 mv 的 man page (輸入 man mv)。
mv 的一般參數如下:
-i — 互動式的 (interactive)。 這將提示您當您選取的檔案即將要覆寫目的目錄的另一個已存在的檔案時。 這是一個好用的參數,因為就像 cp 的 -i 參數,您將會有機會來再次確定您是否想取代既存的檔案。
-f — 強制執行 (force)。 強制超越互動模式,並且不做任何提示便移動檔案。 除非您知道您在做什麼,這個參數是很危險的; 在您可以得心應手的使用您的系統前,請特別小心來使用這個參數。
-v — 詳細資訊 (verbose)。 顯示出移動檔案的過程。
假如您想要將一個檔案移出您的家目錄,並移入另一個既有的目錄,請輸入下列的指令(您必須在您的家目錄中):
mv sneakers.txt tigger |
或者,使用絕對路徑的相同指令就像:
mv sneakers.txt /home/newuser/sneakers.txt /home/newuser/tigger |
您曾經學習過關於使用 touch 指令來建立檔案,以及使用 mkdir 來建立 tigger 目錄。
現在您需要學習如何刪除檔案與目錄。 使用 rm 指令來刪除檔案與目錄是一個很直接的過程。 請看 rm 的 man page 以取得更多資訊。 用來移除檔案與目錄的參數包括:
-i — 互動式的 (interactive)。 提示您來確認刪除。 這個參數會讓您避免意外刪除檔案。
-f — 強制執行 (force)。 強制超越互動模式,並且不做任何提示便移除檔案。 除非您知道您在做什麼,否則最好不要這樣做。
-v — 詳細資料 (verbose)。 顯示檔案被移除的過程。
-r — 遞迴的 (recursive)。 將會刪除一個目錄以及所有其中的檔案與子目錄。
如要使用 rm 指令來刪除 piglet.txt 檔案,請輸入:
rm piglet.txt |
警告 | |
---|---|
一旦使用 rm 指令刪除一個檔案或目錄,該檔案或目錄已被永久刪除而無法回復。 |
如使用 -i (interactive - 互動式的) 參數會給您再一次的機會想一想您是否真的要刪除這個檔案。
rm -i piglet.txt rm: remove 'piglet.txt'? |
您也可以使用萬用字元 * 來刪除檔案,不過需小心,因為您會很容易的就刪除您不想刪除的檔案。
要使用萬用字元來移除檔案,您可以輸入:
rm pig* |
以上的指令將移除在目前目錄中所有以字母 pig 開頭的檔案。
您也可以使用 rm 指令來移除多重的檔案。 例如:
rm piglet.txt sneakers.txt |
您可以使用 rmdir 來移除目錄 (例如 rmdir foo),不過只能在目錄是空的情況下。 要使用 rm 來移除目錄,您必須指定 -r 參數。
例如,您想要遞迴式的移除 tigger 目錄,您可以輸入:
rm -r tigger |
假如您想要結合參數,例如強制一個遞迴式的刪除,您可以輸入:
rm -rf tigger |
使用 rm 指令來移除目錄的一個較安全的方法就是使用 rmdir 指令。 這個指令不允許您使用遞迴式的刪除,所以將無法刪除含有檔案的目錄。
警告 | |
---|---|
rm 指令可以刪除整個檔案系統! 假如您登入為 root, 您只要輸入簡單的指令 rm -rf /,您的麻煩就大了; 這個指令將遞迴式的移除系統上的所有資料。 |
請閱讀 rmdir 的 man page (man rmdir) 以取得更多關於這個指令的資訊。