Léo*_* 준영 1 tar debian data-recovery
我正在考虑如何将 .tar.gz HOME 备份安全地恢复到几乎一个新的 Debian 系统中(某些文件可以存在,因此应该保留rsync -u
)。我的主 PC 坏了,所以我必须使用备份 Debian 系统,但我需要主系统的 HOME 备份(仅以下主文件)。系统特点
$HOME
是 /home/masi/
#1. [但使用圆形符号链接失败]
# http://unix.stackexchange.com/a/291720/16920
nice tar czf /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/
Run Code Online (Sandbox Code Playgroud)
我的目录中有符号链接。我注意到 tarball 不包含所有目录,例如$HOME/Documents/
和/或/home/masi/Documents/
. 该目录有许多符号链接,可能还有一些圆形符号链接。然后 tarball 再次包含$HOME/Desktop/
并且$HOME/Downloads
不应包含任何循环符号链接,并且Downloads
目录根本没有符号链接。
#2. [被拒绝,因为会导致大量重复文件]
tar czf --dereference \
/media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/
Run Code Online (Sandbox Code Playgroud)
#3. ...
tar xzfC ...
]我认为rsync
这里没有删除是正确的选择,但可以-u
选择跳过目标文件已经存在并且日期晚于源文件的任何文件
(要求几乎);
伪代码,因为我认为.tar.gz
不能在那里输入
# http://unix.stackexchange.com/a/287016/16920
rsync -rtvuc --progress \
/media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/
Run Code Online (Sandbox Code Playgroud)
然而,我仍然不确定
.tar.gz
文件作为输入rsync
?操作系统:Debian 8.5
rsync
可以使用时为什么要参与tar
?
如果您使用以下命令创建了备份:
Run Code Online (Sandbox Code Playgroud)tar czf /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/
然后,您可以在不覆盖现有文件的情况下恢复文件,如下所示:
tar xzfC /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz / --keep-newer-files
Run Code Online (Sandbox Code Playgroud)
tar
各种文档的手册页不会覆盖标志。
它发现您的备份包含指向已备份树外部文件的符号链接。如果您不介意丢失符号链接,您可以在备份期间使用-h
( --deference
) 选项将它们放入真实的文件和目录中。另一方面,如果您想保留符号链接及其目标,则需要在备份中包含这些目标。
示例 1,您很高兴将符号链接转换为真实的文件或目录:
tar czf /path/to/backup.tgz --deference "$HOME"
Run Code Online (Sandbox Code Playgroud)
示例 2,您要在其中包含符号链接的目标。这假设您的目标在/bigdisk/myfiles/
:
tar czf /path/to/backup.tgz "$HOME" /bigdisk/myfiles
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
112 次 |
最近记录: |