我正在尝试在ubuntu系统中备份/
中的一些基本文件夹。我正在使用
sudo rsync -aAXv --delete --include="/etc" --include="/home" --include="/usr/local" // /home/$USER/Desktop/bkup/
此命令应仅复制/etc
,/home
,/usr/local
目录,并保留其余文件。但是,当我运行此命令时,它将复制/
目录中的每个目录和每个文件。
我不确定我在这里做什么错。
答案 0 :(得分:0)
包含而没有任何排除是没有意义的。
--exclude='*'
将从每个子文件夹中排除所有未明确包括的内容,甚至包括其中的内容。--exclude='*/'
将排除所有未明确包含的目录,但允许在包含的目录(和根目录)中复制文件。--exclude='/*'
将排除所有未明确包含的 root 目录和文件,但允许包含目录中的所有目录和文件。 您可能想要这个。 您应该在包含规则之后在 之后添加排除规则。规则是,对于每个目录和文件,重要的是 first 匹配包含/排除规则,而默认值(当没有规则匹配时)将包含在内。
“根”是指复制目录的根,而不是整个文件系统的根。
P.S。您的命令在源目录中也有目标目录。您可能想要一个排除规则!