遞迴複製時跳過隱藏檔案和目錄


摘要

在 Linux 命令列中,cp -r 可能是我們想要遞迴複製目錄時首先出現的命令。點檔案被理解為在 Linux 中充當隱藏檔案。在遞迴複製目錄時,我們偶爾會從目錄中排除隱藏檔案和目錄。

在本教程中,我們將學習如何做到這一點。

注意 - Linux 命令區分大小寫。

SCP 命令

使用命令列工具 SCP(安全複製),您可以安全地在兩個位置之間移動檔案和目錄。我們可以使用 scp 將檔案或目錄從本地系統複製到遠端系統,從遠端系統複製到本地系統,以及在兩個遠端系統和您的本地系統之間複製。

執行以下命令將檔案從本地系統複製到遠端系統:

$ scp  script.txt  remote_username@10.9.0.8:/remote/directory

輸出

tutorials@10.9.0.8's password:
script.txt                    100%          0             0.0KB/s          00:00

這裡我們想要複製的檔名為“script.txt”,遠端伺服器上的使用者為 tutorials,伺服器的 IP 地址為 10.9.0.8。您希望將檔案複製到的目錄的路徑位於 /remote/directory 欄位中。如果未指定遠端目錄,則檔案將被複制到遠端使用者的 home 目錄。

rsync 命令

一個有用的 Linux 命令列實用程式,用於複製和同步檔案和目錄,稱為 rsync。該實用程式可用於在兩臺遠端計算機之間或本地在目錄和磁碟之間同步資料。

在 Linux 中,基本的 rsync 命令會同步您指定位置的所有內容。在許多備份場景中,您可能希望排除特定的檔案、資料夾或檔案型別。

我們可以指示 -exclude 選項透過傳遞“.*”模式來忽略隱藏檔案和目錄。我們應該指出,在這種情況下,“.*”模式不是正則表示式。相反,它表示任何以點開頭的目錄或檔名。

在下面的示例中,我們將遞迴地從 ~/sample/ 目錄複製所有檔案,但排除所有 *.backup 檔案:

$ rsync -av -e ssh --exclude='*.backup' ~/sample/ root@fedora:/tmp

輸出

sending incremental file list
images/
images/fedora/user-data
images/fedora/meta-data
images/fedora/

sent 1,145,974,357 bytes received 137 bytes  45,904,896.00 bytes/sec
total size is 1,145,674,357  speedup is 1.00 

如您在上面看到的輸出,所有檔案都已遞迴複製,並且不包含“.backup”檔案。

結論

在本教程中,我們學習了一些關於如何在 Linux 中遞迴複製時跳過隱藏檔案和目錄的示例。在本文中,我們討論瞭如何在省略隱藏檔案和目錄的情況下遞迴複製目錄。

複製所有內容然後刪除隱藏項的方法很簡單。但是,它可能會導致安全漏洞和效能問題。任何 Linux 使用者都可以快速修復此問題。請隨意嘗試 Linux 提供的任何方法來解決此問題,以消除此錯誤。上述過程適用於各種 Linux 發行版。所有作業系統都必須將檔案描述符作為基本元素。

希望您發現這些命令示例有用。

更新於:2023-03-23

1K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告