天天看點

技術 | 終端基礎:在 Linux 中複制檔案和目錄

技術 | 終端基礎:在 Linux 中複制檔案和目錄
在終端基礎知識系列的這一部分中,學習如何在 Linux 中使用指令行複制檔案和目錄。

複制檔案是你經常執行的最基本但最重要的任務之一。

Linux 有一個專門的

cp

指令用于複制檔案和目錄(檔案夾)。

在終端基礎知識系列的這一部分中,你将學習在終端中複制檔案和檔案夾。

📋 回想一下,以下是你迄今為止在本終端基礎知識系列中所學到的内容:
  • 更改目錄
  • 建立新目錄
  • 列出目錄内容
  • 建立檔案
  • 讀取檔案
  • 删除檔案和目錄

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

在 Linux 指令行中複制檔案

讓我向你展示一些複制檔案的示例。

将檔案複制到另一個目錄

要将一個檔案複制到另一目錄,你所要做的就是遵循給定的指令文法:

cp 源檔案 目标目錄
           

例如,在這裡,我将名為

Hello.txt

的檔案複制到名為

Tux

的目錄中:

技術 | 終端基礎:在 Linux 中複制檔案和目錄

正如你所看到的,檔案已成功複制到

Tux

目錄中。

複制檔案但重命名

你可以選擇在複制檔案時重命名該檔案。隻需為“目标檔案”指定一個不同的名稱即可。

cp 源檔案 改名的檔案
           

作為參考,在這裡,我将名為

Hello.txt

的檔案複制到同一目錄,并将其重命名為

Renamed_Hello.txt

技術 | 終端基礎:在 Linux 中複制檔案和目錄

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

将多個檔案複制到另一個位置

要将多個檔案複制到另一個目錄,請按以下方式執行指令:

cp File1 File2 File3 FileN Target_directory
           

在這裡,我将多個檔案複制到新位置。

技術 | 終端基礎:在 Linux 中複制檔案和目錄
📋 當你複制多個檔案時,僅使用

cp

指令無法重命名它們。

複制時處理重複檔案

預設情況下,如果目标目錄中存在同名檔案,

cp

指令将覆寫該檔案。

為了避免覆寫,你可以在 cp 指令中使用

-n

選項,它不會覆寫現有檔案:

cp -n 源檔案 目标目錄
           

例如,在這裡,我嘗試複制目标目錄中已有的兩個檔案,并使用

-v

選項來展示該指令正在執行的操作:

cp -n -v itsFOSS.txt LHB.txt LU.txt ~/Tux
           
技術 | 終端基礎:在 Linux 中複制檔案和目錄

互動式複制檔案

但是,當你想要覆寫某些檔案,而某些檔案應該保持不變時該怎麼辦?

好吧,你可以使用

-i

選項在互動模式下使用

cp

指令,它每次都會詢問你是否應該覆寫該檔案:

cp -i 源檔案 目标目錄
           
技術 | 終端基礎:在 Linux 中複制檔案和目錄
🖥️ 自己練習上述所有示例。你已經了解如何建立檔案和檔案夾,是以請重新建立所有内容。

在 Linux 指令行中複制目錄

mkdir

指令用于建立新目錄,

rmdir

指令用于删除(空)目錄。但沒有用于複制目錄的

cpdir

指令。

你必須使用相同的

cp

指令,但使用遞歸選項

-r

将目錄及其所有内容複制到另一個位置:

cp -r 源目錄 目标目錄
           

例如,在這裡,我将名為

IF

的目錄複制到

LHB

技術 | 終端基礎:在 Linux 中複制檔案和目錄

但它複制了整個目錄。🤨

那麼,當你隻想複制目錄内容而不是目錄本身時該怎麼辦?

你可以執行以下操作:

僅複制目錄的内容(不是目錄)

要僅複制目錄的内容,而不複制目錄本身,請在源目錄名稱的末尾附加

/.

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

在這裡,我想複制名為

IF

的目錄的内容,其中包含以下三個檔案:

技術 | 終端基礎:在 Linux 中複制檔案和目錄

我将執行以下指令将

IF

目錄的檔案内容複制到

LHB

cp -r IF/. LHB
           
技術 | 終端基礎:在 Linux 中複制檔案和目錄

你還可以在此處使用

源目錄/*

複制多個目錄

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

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

例如,在這裡,我将兩個名為

IF

LU

的目錄複制到

LHB

cp -r IF LU ~/LHB
           
技術 | 終端基礎:在 Linux 中複制檔案和目錄

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

cp -r 目錄1/. 目錄2/. 目錄3/. 目錄N/. 目标目錄
           
技術 | 終端基礎:在 Linux 中複制檔案和目錄
🖥️ 你還可以像重命名檔案一樣重命名目錄。

測試你的知識

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

  • 建立一個名為

    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中國榮譽推出

繼續閱讀