1. 程式人生 > 其它 >『Linux學習筆記』4. 檔案和目錄操作指令 -- cp mv mkdir rm

『Linux學習筆記』4. 檔案和目錄操作指令 -- cp mv mkdir rm

本篇將在上篇的基礎上, 介紹常用的檔案(目錄)實際操作命令.

  • cp – Copy files and directories

    • 複製檔案或目錄
  • mv – Move/rename files and directories

    • 移動檔案或目錄
  • mkdir – Create directories

    • 新建目錄
  • rm – Remove files and directories

    • 刪除檔案或目錄

萬用字元

在使用檔案操作命令之前, 需要先了解為什麼在圖形操作介面如此發達的今天, 命令列操作方式仍未被淘汰的原因. 而萬用字元則是答案之一.

萬用字元允許你依據字元的組合模式來選擇檔名。下表列出這些萬用字元以及它們所選擇的物件:

萬用字元意義
* 匹配任意多個字元(包括零個或一個)
? 匹配任意一個字元(不包括零個)
[characters] 匹配任意一個屬於字符集中的字元
[!characters] 匹配任意一個不是字符集中的字元
[[:class:]] 匹配任意一個屬於指定字元類中的字元(見下表)
普遍使用的字元類
字元類意義
[:alnum:] 匹配任意一個字母或數字
[:alpha:] 匹配任意一個字母
[:digit:] 匹配任意一個數字
[:lower:] 匹配任意一個小寫字母
[:upper:] 匹配任意一個大寫字母

藉助萬用字元, 為檔名構建非常複雜的選擇標準成為可能. 這也是圖形化介面難以高效實現的.

在Linux(Shell)中, 任何可以接受檔名作為命令引數的命令, 都可以使用萬用字元.

mkdir

mkdir 命令是用來建立目錄的.

它可以同時接受多個引數以同時建立多個目錄.

如:

mkdir dir1 dir2 dir3

在當前工作目錄下建立三個目錄,名為 dir1, dir2, dir3.

cp

cp是由copy縮寫所得到的, 其所做的工作與其原本的意思無異 -- 拷貝.

它有兩種使用方法:

cp item1 item2

複製檔案或目錄item1到目錄item2

cp item... directory

複製多個檔案或目錄到一個目錄下

除此之外, cp命令還有一些常用的可選引數, 如下:

cp 選項
選項意義
-a, --archive 複製檔案和目錄,以及它們的屬性,包括擁有者和所有權。 通常,副本具有使用者所操作檔案的預設屬性。
-i, --interactive 在重寫已存在檔案之前,提示使用者確認。如果這個選項不指定, cp 命令會預設重寫檔案。
-r, --recursive 遞迴地複製目錄及目錄中的內容。當複製目錄時, 需要這個選項(或者-a 選項)。
-u, --update 當把檔案從一個目錄複製到另一個目錄時,僅複製 目標目錄中不存在的檔案,或者是檔案內容新於目標目錄中已經存在的檔案。
-v, --verbose 複製時顯示詳細的命令操作資訊

舉例:

cp 例項
命令執行結果
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

mv源於move的縮寫, 它可以用作檔案或目錄的移動或重新命名.mv的用法與cp十分相似.

但需要注意的是, 無論是用作重新命名或移動, 只要使用了mv命令, 原檔案或目錄將不存在.

它有同樣兩種使用方法:

mv item1 item2

移動檔案或目錄item1到目錄item2

mv item... directory

複製多個檔案或目錄到一個目錄下

mv命令與cp命令的很多可選引數都是一樣的:

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源自remove的縮寫, 它用來移除(刪除)檔案和目錄

rm item...

同樣, rm也有可選引數

rm 選項
選項意義
-i, --interactive 在刪除已存在的檔案前,提示使用者確認資訊。如果不指定這個選項,rm 會默默地刪除檔案
-r, --recursive 遞迴地刪除檔案,這意味著,如果要刪除一個目錄,而此目錄 又包含子目錄,那麼子目錄也會被刪除。要刪除一個目錄,必須指定這個選項。
-f, --force 忽視不存在的檔案,不顯示提示資訊。這選項覆蓋了“--interactive”選項。
-v, --verbose 在執行 rm 命令時,顯示翔實的操作資訊。

例:

rm 例項
命令執行結果
rm file1 默默地刪除檔案
rm -i file1 除了在刪除檔案之前,提示使用者確認資訊之外,和上面的命令作用一樣。
rm -r file1 dir1 刪除檔案 file1, 目錄 dir1,及 dir1 中的內容。
rm -rf file1 dir1 同上,除了如果檔案 file1,或目錄 dir1 不存在的話,rm 仍會繼續執行。
rm -rf * 使用了萬用字元, 這將刪除當前工作目錄下的任何東西. 刪庫跑路(bushi