我试图使用rsync复制一组特定的子目录来备份它们。我的目录结构如下所示:
/path/to/data/foo1
/path/to/data/foo2
/path/to/data/bar1
/path/to/data/bar2我只想复制'foo‘文件夹,忽略'bar’的文件夹。
我还想忽略这些文件夹中的任何.zip文件。
我在rsync中尝试了许多参数组合,但无法让它完全实现我想做的事情。
我可以按照我想使用的两个命令来完成传输:
rsync --dry-run -a --human-readable --stats --progress --exclude"*.zip" "/path/to/data/foo1" "/mnt/backup/drive/"
rsync --dry-run -a --human-readable --stats --progress --exclude"*.zip" "/path/to/data/foo2" "/mnt/backup/drive"从其他地方阅读,我希望这样的东西能起作用。
rsync --dry-run -a --human-readable --stats --progress --include="data/foo*" --exclude="*.zip" --exclude="*" "/path/to/data" "/mnt/backup/drive"但这似乎也能捕捉到“bar”文件夹。
包括和排除论点的顺序让我很困惑。正如需要在--包括参数中指定'data‘文件夹一样,我所期望的功能并不是这样。
我错过的明显的旗帜是什么!
谢谢你的意见。
本
发布于 2018-04-28 20:54:05
您可以以这种方式运行rsync:
rsync --dry-run -av --human-readable --stats --progress --exclude="*.zip" /path/to/data/foo* /path/to/copy/to/也许您想用这样的方式缩短命令:
rsync -avhn --stats --progress --exclude="*.zip" /path/to/data/foo* /path/to/copy/to/引用人rsync
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose increase verbosity
-h, --human-readable output numbers in a human-readable format
-n, --dry-run perform a trial run with no changes made准备好后,运行不带-n的命令
还可以使用此参数保存日志文件:
--log-file=因此,上面的rsync命令将变成:
rsync -avhn --stats --progress --exclude="*.zip" --log-file=logfile.log /path/to/data/foo* /path/to/copy/to/日志文件将写在运行命令的同一个目录中,如果需要将其保存在另一个位置,则必须使用绝对路径。例如:
--log-file=/path/to/logfilehttps://unix.stackexchange.com/questions/440643
复制相似问题