我想备份一个包含数千个子目录和深层子文件夹路径的目录。在这些目录中的许多目录中,有大量以.
. 我想确保.
子目录和子子目录等中的所有文件都被正确复制。指定就够了include="*"
吗?这会涵盖一切吗?
rsync -rvh --compress-level=0 --stats --progress --include ".*" user@vm:/mnt/storage8/backups ~/data/backup_of_backups/
Run Code Online (Sandbox Code Playgroud)
默认情况下包含所有文件,因此如果要包含所有文件,请不要传递 any--include
或--exclude
选项。
如果您确实使用模式,rsync 不会特别对待点文件。如果您想跳过点文件,则必须明确使用--exclude='.*'
.
请注意,--include='.*'
只会包含点文件。这是一个 shell 模式, where.
代表自身,*
意思是“任何字符序列”,而不是正则表达式,where.
意思是“任何字符”,*
意思是“任意数量的前面的字符或组”。没有任何 exclude 指令,你仍然得到所有文件,所以包含指令是没有意义的,但如果你有一些排除指令,--include='.*'
并不意味着“包含所有文件,包括点文件”,它只会意味着“包含点文件”(和它本身不会递归到名称不以点开头的目录中)。
在不指定任何包含或排除模式的情况下,rsync
将复制隐藏文件和目录。
rsync --stats --progress -av user@vm:/mnt/storage8/backups ~/data/backup_of_backups/
Run Code Online (Sandbox Code Playgroud)