如何在Linux中複製文件和目錄

複製文件和目錄是在命令行上執行時最常見的任務之一。 在Linux中,有幾個命令可用於複製文件, cprsync 是使用最廣泛的工具。

通常的做法是使用 cp 命令複製文件和 rsync 複製目錄。

為了能夠複製文件和目錄,您必須至少具有對源文件的讀取權限和對目標目錄的寫入權限。

使用複製文件 cp 命令#

在Linux和Unix操作系統上, cp 該命令用於複製文件和目錄。

最簡單的用例是將文件複製到當前工作目錄中。 例如,複製一個名為 file.txt 到一個名為 file_backup.txt 在當前目錄中,您將運行以下命令:

cp file.txt file_backup.txt

如果目標文件存在,它將被覆蓋。 要在覆蓋文件之前獲得確認提示,請使用 -i 選項。

cp -i file.txt file_backup.txt

默認情況下,使用 cp 命令複製文件時,執行命令的用戶將擁有新文件。 使用 -p 保留文件模式,所有權和時間戳的選項:

cp -p file.txt file_backup.txt

另一個有用的選擇是 -v。 使用此選項時,命令將顯示正在執行的操作:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

將文件複製到目錄#

要將文件複製到目錄,請指定目錄的絕對或相對路徑。 省略目標目錄時,文件將複製到當前目錄。

在下面的示例中,我們正在複製文件 file.txt/backup 目錄:

cp file.txt /backup

僅將目錄名稱指定為目的地時,複製的文件將具有與原始文件相同的名稱。

如果要使用其他名稱複製文件,則需要指定所需的文件名:

cp file.txt /backup/new_file.txt

上面的命令會將文件複製為指定的目錄,如下所示: new_file.txt

複製多個文件

要一次複製多個文件和目錄,請指定源文件和目錄的名稱,後跟目標目錄作為最後一個參數:

cp file.txt dir file1.txt file2.txt dir1

複製多個文件時,目標位置必須是目錄。

cp 命令還允許您使用模式匹配。 例如,複製所有 .png 文件從當前目錄到 /backup 目錄,您將使用:

cp *.png /backup

用複製目錄 cp 命令#

要複製目錄(包括其所有文件和子目錄),請使用 -R 要麼 -r 選項。 在下面的示例中,我們正在複製目錄 PicturesPictures_backup

cp -R Pictures Pictures_backup

上面的命令將創建目標目錄,並將所有文件和子目錄從源遞歸複製到目標目錄。

如果目標目錄已經存在,則源目錄本身及其內容將複製到目標目錄。 要僅複製文件和子目錄而不複製目標目錄,請使用 -T 選項:

cp -RT Pictures Pictures_backup

複製文件時使用的選項也可以在複製目錄時使用。 主要區別在於複製目錄時,您需要使用 -R 選項。

使用以下命令複製文件和目錄 rsync 命令#

rsync 是一種快速且通用的命令行工具,可在兩個位置之間同步文件和目錄。 它可用於將文件複製到本地和遠程位置。

rsync 包括許多控制其行為各個方面的選項

最有用的選項是 -a 以遞歸方式複製目錄,傳輸特殊設備和塊設備並保留符號鏈接,修改時間,組,所有權和權限。

要將單個文件從一個文件複製到另一個位置,請運行以下命令:

rsync -a file.txt file_backup.txt

如果目標文件存在, rsync 將覆蓋它。

相同的命令可用於複製目錄:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync 威脅以斜杠結尾的源目錄 / 不一樣。 如果在源目錄上添加斜杠,該命令將僅將源目錄的內容複製到目標目錄。 如果省略了斜杠, rsync 將源目錄複製到目標目錄中。 最安全的選擇是始終包含尾部斜杠 / 在目標和源上。

要了解更多有關 rsync 檢查以下文章:

  • 如何使用Rsync進行本地和遠程數據傳輸和同步
  • 如何使用Rsync排除文件和目錄

結論#

我們已經向您展示了如何在Linux和基於Unix的系統中使用 cprsync 實用程序。

如有任何疑問,請在下面發表評論。

cp rsync終端

Sidebar