Rsync
rsync 中的 include=’*’ 是否複製所有子目錄中的所有隱藏文件?
我想對包含數千個子目錄和深層子文件夾路徑的目錄進行備份。在許多這些目錄中,有大量以
.
. 我想確保.
子目錄和子子目錄等中的所有文件都被正確複製。指定就夠了include="*"
嗎?這會涵蓋一切嗎?rsync -rvh --compress-level=0 --stats --progress --include ".*" user@vm:/mnt/storage8/backups ~/data/backup_of_backups/
預設情況下包含所有文件,因此如果要包含所有文件,請不要傳遞任何
--include
或--exclude
選項。如果你確實使用了模式,rsync 不會特別處理點文件。如果您想跳過點文件,則必須明確使用
--exclude='.*'
.請注意,
--include='.*'
這只會包括點文件。這是一個 shell 模式,它.
代表它自己,*
意思是“任何字元序列”,而不是一個正則表達式,.
意思是“任何字元”,*
意思是“任意數量的前面的字元或組”。如果沒有任何 exclude 指令,您仍然可以獲得所有文件,因此 include 指令毫無意義,但如果您有一些 exclude 指令,則--include='.*'
並不意味著“包含所有文件,包括點文件”,它只會意味著“包含點文件”(和它本身不會遞歸到名稱不以點開頭的目錄中)。