假设我正在打包 chroot。如果它尝试打包系统节点,比如说,这合理吗/dev/zero
?或者这听起来很愚蠢,导致 tar 无限尝试找到零的末尾以便压缩它们?
答案1
tar
相当智能。当被告知要存档特殊节点(如)时,它会存储创建这些文件所需的/dev/{zero,urandom,...}
主设备号和次设备号(在命令中使用):mknod
$ tar cf foo.tar /dev/zero
tar: Removing leading `/' from member names
$ tar tvf foo.tar
crw-rw-rw- root/root 1,5 2016-12-25 13:06 dev/zero
$ tar xf foo.tar
tar: dev/zero: Cannot mknod: Operation not permitted
tar: Exiting with failure status due to previous errors
它也不直接归档块设备。请参阅如何让 tar(等等)存档块设备内容?