我想备份我的 Ubuntu 系统,我有两个分区需要关心:一个是/,另一个是/home.
我可能想要备份/. 这甚至没有那么大,所以我可以将它放在我的 SD 卡上,同时响应速度足以让我想要拥有它的图像(这就是我此时尝试使用 rsync 的原因)。
而关于/home,它有很多子目录,我不计较太多,所以我就不太可能包括他们,但我想大约需要在那里的文件,例如像护理.bash_history,.bashrc,.face,等等。
所以我想排除所有子目录,同时包含/home. 我怎样才能做到这一点?
--exclude "*/"没有工作。"/*/", "/**/",--include "*" --exclude */没有显示我想要什么。至少它复制了源文件夹,而不复制其中的任何内容。
May*_*hux 19
试试这个命令:
rsync -a -f"- */" -f"+ *" /home/user/ destination/
Run Code Online (Sandbox Code Playgroud)
man rsync
-f, --filter=RULE add a file-filtering RULE
Run Code Online (Sandbox Code Playgroud)
包含所有文件*并排除目录的规则*/
cpcp /home/usr/* /destination
Run Code Online (Sandbox Code Playgroud)
您可以使用重定向摆脱有关目录的错误
cp /home/usr/* /destination 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
这只会复制您家中没有目录的文件
小智 5
如果你想用--include和--exclude参数来解决这个问题,你应该改变它们的顺序:首先排除你想要的,然后包含所有内容。我通常用这个命令来做到这一点:
rsync -vazhP path/to/source path/to/dest --exclude '*/*/' --include '*'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24592 次 |
| 最近记录: |