Linux中國

在 Linux 中使用 cp 命令

熟悉在 Linux 命令行中複製文件和目錄的 cp 命令。

cp 命令是 Linux 中一個重要的命令,你可能經常會用到它。

正如名稱所示,cp 代表 複製 copy ,它被用於 在 Linux 命令行中複製文件和目錄

這是一個相對簡單的命令,只有幾個選項,但你仍有必要深入了解它。

在展示 cp 命令的實際示例之前,我更建議你先熟悉絕對路徑和相對路徑的概念,將文件從一個位置複製到另一個位置時,你需要用到它們。

Linux 中的絕對路徑和相對路徑的不同之處

複製單個文件

cp 命令最簡單和最常見的用途是複製文件,只需指定源文件和要「粘貼」文件的目標目錄即可。

cp 源文件 目標目錄

將單個文件從源目錄複製到目標目錄。

在複製文件的同時重命名它

你將文件複製到另一個位置時可以同時進行 重命名。這有點類似於文本編輯器中的「另存為」選項。

為此,你必須在路徑中給出新的文件名。

cp 源文件 目標目錄/新文件名

在複製文件的同時重命名

複製多個文件

你還可以將多個文件複製到另一個位置。

cp 文件1 文件2 文件3 目標目錄

複製多個文件時,將目標目錄放在最後

在這種情況下,你無法重命名文件。

你還可以使用通配符擴展,將特定後綴的文件複製到另一個位置:

cp *.txt 目標目錄

使用通配符擴展複製多個文件,比如所有 .txt 後綴的文件

複製文件時避免覆蓋現有文件

如果你將 file1.txt 複製到一個已經存在名為 file1.txt 文件的目錄中,它會將原有的文件覆蓋掉。

如果你不希望這樣,cp 命令還提供了幾個選項來處理文件覆蓋的情況。

首先是使用選項 -i 的交互模式。在交互模式下,它會詢問是否確認或放棄覆蓋目標文件。

cp -i 源文件 目標目錄
cp:覆蓋 '目標目錄/源文件' ?

Y 覆蓋文件,按 N 跳過複製該文件。

覆蓋,但以交互方式詢問(內容將被覆蓋)

覆蓋,但以交互方式詢問(內容不會被覆蓋)

選項 -n 代表完全取消覆蓋。使用此選項時目標文件不會被覆蓋。

cp -n 源文件 目標目錄

取消覆蓋(目錄內文件的內容未更改)

還有一個選項 -b,在目標目錄的文件將被覆蓋時自動為其創建備份。我猜這裡 b 代表 備份 backup

cp -b 源文件 目標目錄

覆蓋文件,但在備份文件後附加了「~」。

最後,還有一個「 更新 update 」選項 -u,如果目標文件比源文件舊,或者目標文件不存在,就會被覆蓋掉。

cp -u 源文件 目標目錄

新文件會覆蓋舊文件

複製目錄(文件夾)

cp 命令也用來在 Linux 命令行中複製目錄

在複製目錄時,你需要使用遞歸選項 -r

cp -r 源目錄 目標目錄

在 Linux 中使用 cp 命令複製整個目錄

你還可以將多個目錄複製到另一個位置:

cp -r 目錄1 目錄2 目錄3 目標目錄

使用 cp 命令複製多個目錄

在複製時保留屬性

當你將文件複製到另一個位置時,它的 時間戳文件許可權 甚至所有權都會發生變化。

這是正常的行為。但在某些情況下,你可能希望在複製文件時保留其原始屬性。

要保留屬性,請使用選項 -p

cp -p 源文件 目標目錄

? 還有一個 -a 選項用於存檔模式。它將連 ACL 也保留下來。

?️ 練習時間

想要練習一下 cp 命令嗎?以下是一些簡單的練習題供你嘗試。

  • 打開終端並創建一個名為 practice_cp 的目錄。
  • 現在,將 /etc/services 文件複製到這個新創建的目錄中。
  • practice 目錄中對複製的 services 文件進行一些小的更改。
  • 現在,使用更新模式再次複製 /etc/services 文件。有什麼變化嗎?觀察一下。
  • 查看 /var/log 目錄,並將以 mail 開頭的日誌文件複製到你的聯繫目錄下。
  • 現在,返回到你的家目錄,並創建一個名為 new_dir 的新目錄(好吧,我想不出更好的名字)。
  • practice_cp 目錄複製到 new_dir 目錄中。

對你來說這些練習足夠用了。希望你能喜歡在這裡學習 Linux 命令。

(題圖:MJ/07b35a39-826e-4904-9f85-25257831ce9d)

via: https://itsfoss.com/cp-command/

作者:Abhishek Prakash 選題:lkxed 譯者:onionstalgia 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國