終端基礎:在 Linux 中複製文件和目錄
在終端基礎知識系列的這一部分中,學習如何在 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive