Linux中國

終端基礎:在 Linux 中複製文件和目錄

終端基礎知識系列的這一部分中,學習如何在 Linux 中使用命令行複製文件和目錄。

複製文件是你經常執行的最基本但最重要的任務之一。

Linux 有一個專門的 cp 命令用於複製文件和目錄(文件夾)。

終端基礎知識系列的這一部分中,你將學習在終端中複製文件和文件夾。

? 回想一下,以下是你迄今為止在本終端基礎知識系列中所學到的內容:

讓我們繼續該系列的第七章。

在 Linux 命令行中複製文件

讓我向你展示一些複製文件的示例。

將文件複製到另一個目錄

要將一個文件複製到另一目錄,你所要做的就是遵循給定的命令語法:

cp 源文件 目標目錄

例如,在這裡,我將名為 Hello.txt 的文件複製到名為 Tux 的目錄中:

copy file to another directory in linux command line

正如你所看到的,文件已成功複製到 Tux 目錄中。

複製文件但重命名

你可以選擇在複製文件時重命名該文件。只需為「目標文件」指定一個不同的名稱即可。

cp 源文件 改名的文件

作為參考,在這裡,我將名為 Hello.txt 的文件複製到同一目錄,並將其重命名為 Renamed_Hello.txt

rename a file while copying in a same directory in linux terminal

為什麼要這麼做? 比如說,你必須編輯配置文件。一個好的做法是在編輯配置文件之前在同一位置對其進行備份。這樣,如果事情沒有按計划進行,你可以恢復到舊配置。

將多個文件複製到另一個位置

要將多個文件複製到另一個目錄,請按以下方式執行命令:

cp File1 File2 File3 FileN Target_directory

在這裡,我將多個文件複製到新位置。

copy multiple files using the cp command in linux

? 當你複製多個文件時,僅使用 cp 命令無法重命名它們。

複製時處理重複文件

默認情況下,如果目標目錄中存在同名文件,cp 命令將覆蓋該文件。

為了避免覆蓋,你可以在 cp 命令中使用 -n 選項,它不會覆蓋現有文件:

cp -n 源文件 目標目錄

例如,在這裡,我嘗試複製目標目錄中已有的兩個文件,並使用 -v 選項來展示該命令正在執行的操作:

cp -n -v itsFOSS.txt LHB.txt LU.txt ~/Tux

how not to override files while copying in linux using the cp command

互動式複製文件

但是,當你想要覆蓋某些文件,而某些文件應該保持不變時該怎麼辦?

好吧,你可以使用 -i 選項在交互模式下使用 cp 命令,它每次都會詢問你是否應該覆蓋該文件:

cp -i 源文件 目標目錄

how to use cp command in interactive mode

?️ 自己練習上述所有示例。你已經了解如何創建文件和文件夾,因此請重新創建所有內容。

在 Linux 命令行中複製目錄

mkdir 命令用於創建新目錄,rmdir 命令用於刪除(空)目錄。但沒有用於複製目錄的 cpdir 命令。

你必須使用相同的 cp 命令,但使用遞歸選項 -r 將目錄及其所有內容複製到另一個位置:

cp -r 源目錄 目標目錄

例如,在這裡,我將名為 IF 的目錄複製到 LHB

how to copy a directory in linux command line

但它複製了整個目錄。?

那麼,當你只想複製目錄內容而不是目錄本身時該怎麼辦?

你可以執行以下操作:

僅複製目錄的內容(不是目錄)

要僅複製目錄的內容,而不複製目錄本身,請在源目錄名稱的末尾附加 /.

cp -r 源目錄/. 目標目錄

在這裡,我想複製名為 IF 的目錄的內容,其中包含以下三個文件:

check the file contents of directory using the tree command

我將執行以下命令將 IF 目錄的文件內容複製到 LHB

cp -r IF/. LHB

copy the file contents of directory not a directory itself in linux command line

你還可以在此處使用 源目錄/*

複製多個目錄

要複製多個目錄,你必須按以下方式執行命令:

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

例如,在這裡,我將兩個名為 IFLU 的目錄複製到 LHB

cp -r IF LU ~/LHB

copy multiple directories using the cp command in linux command line

當你想要從多個目錄複製文件但不複製目錄本身時,你可以執行相同的操作:

cp -r 目錄1/. 目錄2/. 目錄3/. 目錄N/. 目標目錄

copy files from multiple directories but not directories their self using the cp command

?️ 你還可以像重命名文件一樣重命名目錄。

測試你的知識

現在,讓我們看看你對到目前為止所學到的知識還記得多少。

  • 創建一個名為 copy_practice 的目錄。
  • 將文件 /etc/services 複製到這個新創建的文件夾。
  • 在此目錄下創建一個名為 secrets 的文件夾,並將文件 /etc/passwd/etc/services 複製到其中。
  • copy_practice 中的 services 文件複製到 secrets 文件夾中,但不要覆蓋它。
  • secrets 文件夾複製到你的主目錄。
  • 刪除 secretscopy_practice 目錄。

這會給你一些練習。

到目前為止進展順利。你已經學到了很多東西。在下一章中,你將了解如何使用 mv 命令移動文件和文件夾。

via: https://itsfoss.com/copy-files-directory-linux/

作者:Sagar Sharma 選題:lkxed 譯者:geekpi 校對: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中國