在終端基礎知識系列的這一部分中,學習如何在 Linux 中使用指令行複制檔案和目錄。
複制檔案是你經常執行的最基本但最重要的任務之一。
Linux 有一個專門的
cp
指令用于複制檔案和目錄(檔案夾)。
在終端基礎知識系列的這一部分中,你将學習在終端中複制檔案和檔案夾。
📋 回想一下,以下是你迄今為止在本終端基礎知識系列中所學到的内容:
- 更改目錄
- 建立新目錄
- 列出目錄内容
- 建立檔案
- 讀取檔案
- 删除檔案和目錄
讓我們繼續該系列的第七章。
在 Linux 指令行中複制檔案
讓我向你展示一些複制檔案的示例。
将檔案複制到另一個目錄
要将一個檔案複制到另一目錄,你所要做的就是遵循給定的指令文法:
cp 源檔案 目标目錄
例如,在這裡,我将名為
Hello.txt
的檔案複制到名為
Tux
的目錄中:
正如你所看到的,檔案已成功複制到
Tux
目錄中。
複制檔案但重命名
你可以選擇在複制檔案時重命名該檔案。隻需為“目标檔案”指定一個不同的名稱即可。
cp 源檔案 改名的檔案
作為參考,在這裡,我将名為
Hello.txt
的檔案複制到同一目錄,并将其重命名為
Renamed_Hello.txt
:
為什麼要這麼做? 比如說,你必須編輯配置檔案。一個好的做法是在編輯配置檔案之前在同一位置對其進行備份。這樣,如果事情沒有按計劃進行,你可以恢複到舊配置。
将多個檔案複制到另一個位置
要将多個檔案複制到另一個目錄,請按以下方式執行指令:
cp File1 File2 File3 FileN Target_directory
在這裡,我将多個檔案複制到新位置。
📋 當你複制多個檔案時,僅使用 cp
指令無法重命名它們。
複制時處理重複檔案
預設情況下,如果目标目錄中存在同名檔案,
cp
指令将覆寫該檔案。
為了避免覆寫,你可以在 cp 指令中使用
-n
選項,它不會覆寫現有檔案:
cp -n 源檔案 目标目錄
例如,在這裡,我嘗試複制目标目錄中已有的兩個檔案,并使用
-v
選項來展示該指令正在執行的操作:
cp -n -v itsFOSS.txt LHB.txt LU.txt ~/Tux
互動式複制檔案
但是,當你想要覆寫某些檔案,而某些檔案應該保持不變時該怎麼辦?
好吧,你可以使用
-i
選項在互動模式下使用
cp
指令,它每次都會詢問你是否應該覆寫該檔案:
cp -i 源檔案 目标目錄
🖥️ 自己練習上述所有示例。你已經了解如何建立檔案和檔案夾,是以請重新建立所有内容。
在 Linux 指令行中複制目錄
mkdir
指令用于建立新目錄,
rmdir
指令用于删除(空)目錄。但沒有用于複制目錄的
cpdir
指令。
你必須使用相同的
cp
指令,但使用遞歸選項
-r
将目錄及其所有内容複制到另一個位置:
cp -r 源目錄 目标目錄
例如,在這裡,我将名為
IF
的目錄複制到
LHB
:
但它複制了整個目錄。🤨
那麼,當你隻想複制目錄内容而不是目錄本身時該怎麼辦?
你可以執行以下操作:
僅複制目錄的内容(不是目錄)
要僅複制目錄的内容,而不複制目錄本身,請在源目錄名稱的末尾附加
/.
:
cp -r 源目錄/. 目标目錄
在這裡,我想複制名為
IF
的目錄的内容,其中包含以下三個檔案:
我将執行以下指令将
IF
目錄的檔案内容複制到
LHB
:
cp -r IF/. LHB
你還可以在此處使用
源目錄/*
。
複制多個目錄
要複制多個目錄,你必須按以下方式執行指令:
cp -r 目錄1 目錄2 目錄3 目錄N 目标目錄
例如,在這裡,我将兩個名為
IF
和
LU
的目錄複制到
LHB
:
cp -r IF LU ~/LHB
當你想要從多個目錄複制檔案但不複制目錄本身時,你可以執行相同的操作:
cp -r 目錄1/. 目錄2/. 目錄3/. 目錄N/. 目标目錄
🖥️ 你還可以像重命名檔案一樣重命名目錄。
測試你的知識
現在,讓我們看看你對到目前為止所學到的知識還記得多少。
- 建立一個名為
的目錄。copy_practice
- 将檔案
複制到這個新建立的檔案夾。/etc/services
- 在此目錄下建立一個名為
的檔案夾,并将檔案secrets
和/etc/passwd
複制到其中。/etc/services
- 将
中的copy_practice
檔案複制到services
檔案夾中,但不要覆寫它。secrets
- 将
檔案夾複制到你的主目錄。secrets
- 删除
和secrets
目錄。copy_practice
這會給你一些練習。
到目前為止進展順利。你已經學到了很多東西。在下一章中,你将了解如何使用
mv
指令移動檔案和檔案夾。
via: https://itsfoss.com/copy-files-directory-linux/
作者:Sagar Sharma選題:lkxed譯者:geekpi校對:wxy
本文由 LCTT原創編譯,Linux中國榮譽推出