使用 Linux 上的 rsync 複製檔案時過濾檔案


簡介

Linux 命令列實用程式 rsync 是一種功能強大且靈活的工具,用於在不同的計算機和位置之間同步檔案和目錄。它通常用於各種任務,包括備份、檔案傳輸和資料複製。rsync 的主要功能之一是能夠根據各種條件(例如檔案型別、大小和修改時間)過濾檔案。在本文中,我們將詳細探討如何在 Linux 系統上使用 rsync 過濾器在目錄同步期間選擇性地複製檔案。

Rsync 概述

Rsync 是一種功能強大且高效的檔案傳輸工具,允許使用者在不同系統之間同步檔案和目錄。它的工作原理是比較源目錄和目標目錄,並僅複製已更改或新增到源目錄的檔案。此功能使 rsync 成為透過網路傳輸大量資料的理想工具,因為它最大限度地減少了需要傳輸的資料量。此外,rsync 還可用於刪除源目錄中不再存在的檔案,使其成為維護多個系統之間檔案一致性的通用工具。

使用 include 選項

rsync 最強大的功能之一是能夠根據各種條件(例如檔案型別、大小和修改時間)過濾檔案。include 選項是一個強大的工具,允許使用者選擇性地僅複製某些型別的檔案。include 選項與 exclude 選項結合使用,exclude 選項用於根據特定條件排除檔案。

例如,假設您只想傳輸當前目錄中的文字檔案。我們將使用 include 選項來過濾我們要傳輸的檔案,並使用萬用字元與 exclude 選項來排除所有其他檔案 -

$ rsync --include=*.txt --exclude=* /source/* /destination/

在此示例中,選項的順序很重要。include 和 exclude 選項是過濾器,並按指定的順序應用。因此,我們首先必須使用表示我們要傳輸的檔案的過濾器,然後排除所有其他內容。執行此命令時,源目錄中的所有文字檔案都將被選中以進行傳輸,所有其他檔案都將被排除。

我們還可以使用多個 include 選項來傳輸多種檔案型別。例如,如果我們想傳輸文字檔案和日誌檔案,我們可以為每個檔案使用一個 include 選項,然後是 exclude 選項 -

$ rsync --include=*.txt --include=*.log --exclude=* /source/* /destination/

遞迴遍歷子目錄

在某些情況下,我們可能希望傳輸源目錄所有子目錄中符合特定條件的檔案。為此,我們可以使用-a-r 選項來遍歷子目錄。例如,要傳輸源目錄所有子目錄中的所有文字檔案,我們可以使用以下命令 -

$ rsync -ar --include=*/ --include=*.txt --exclude=* /source/* /destination/

但是,此命令有可能複製所有子目錄(無檔案),因此我們還需要使用--prune-empty-dirs-m 選項來防止這種情況發生 -

$ rsync -ar --prune-empty-dirs --include=*/ --include=*.txt --exclude=* /source/* /destination/

高階過濾

Rsync 提供了一些高階過濾器選項,可用於根據更復雜的條件過濾檔案。其中包括能夠根據檔案大小、修改時間和檔案屬性進行過濾。

例如,以下命令將“/source/”目錄中大於 100 MB 的所有檔案同步到“/destination/”目錄 -

$ rsync -av --size-gt 100M /source/ /destination/

再舉一個例子,以下命令將“/source/”目錄中過去 30 天內更改的所有檔案同步到“/destination/”目錄 -

$ rsync -av --ignore-existing --modify-window=30 /source/ /destination/

版本和變體

需要注意的是,rsync 命令的行為和語法在不同版本之間可能會有所不同。本教程基於版本 3.2.4。rsync 的最新版本可在官方網站上獲得 -

https://rsync.samba.org。始終建議查閱您正在使用的特定版本的文件,以確保本教程中使用的命令和選項按預期工作。

結論

Rsync 是一個功能強大且通用的工具,用於在 Linux 系統上同步檔案和目錄。它能夠根據各種條件(例如檔案型別、大小和修改時間)過濾檔案,使其成為各種任務的有用工具,包括備份、檔案傳輸和資料複製。include 選項尤其是一個強大的工具,允許使用者選擇性地僅複製某些型別的檔案,使其成為管理和維護多個系統之間檔案一致性的寶貴工具。透過正確使用 include 和 exclude 選項,結合能夠調出子目錄和高階過濾選項,rsync 可以成為任何 Linux 系統管理員工具箱中的重要工具。

更新於:2023 年 1 月 20 日

653 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.