Tar 存档:追加的可靠性如何?

发布于 2024-10-13 07:05:04 字数 204 浏览 7 评论 0原文

我注意到 TAR 中的 -a 选项允许将文件附加到现有存档中。这对于创建一组文件夹的增量备份有多可靠? 这里有没有人可以分享一下他们的经验?

来自 TAR 手册:

 -A, --catenate, --concatenate
       append tar files to an archive

I noticed that the -a option in TAR allows appending files to an existing archive. How reliable is this for creating incremented backups of a set folder?
Is there anyone here who can share their experiences?

From the TAR manual:

 -A, --catenate, --concatenate
       append tar files to an archive

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

吐个泡泡 2024-10-20 07:05:04

由于 tar 是一个磁带存档,因此最后一个文件将通过标头附加到存档中。没有可能导致问题的索引表

因此它是非常可靠的。即使过程中途中断,您也可以查找存档直到最后一个完整条目并删除其后的所有内容,一切都将就像您从未尝试附加到存档一样。

Since tar is a Tape Archive the last file will physically be appended to the archive, with an header. There is no index table which could cause issues.

Thus it's very reliable. Even if the process gets interrupted halfway you can seek the archive until the last complete entry and delete everything after it and everything will be as if you never tried to append to the archive.

友欢 2024-10-20 07:05:04

正如其他人指出的那样,tar 确实会附加到文件中,即使您只是不断将相同的文件附加到 tar 球中:

makholm@korovyov:~$ dd if=/dev/urandom bs=1M count=1 of=./foo
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.513785 s, 2.0 MB/s
makholm@korovyov:~$ for i in {1..5} ; do tar -rf foo.tar foo ; ls -lh foo.tar ; done
-rw-r--r-- 1 makholm makholm 1.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 2.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 3.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 4.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 5.1M 2011-01-22 01:07 foo.tar
makholm@korovyov:~$ 

这对于增量备份之类的操作来说非常无用,因为您的 tar 球只会随着大量重复文件而增长每次运行...

即使是 cpio(通常是一个更强大的归档程序)在这种情况下也会做同样的事情。

如果您想做增量备份,请研究 rsync 以及它在增量传输和链接到以前版本的文件方面可以为您做什么...

As others have pointed out, tar really does append to the file, even if you just keep appending the same file to the tar ball:

makholm@korovyov:~$ dd if=/dev/urandom bs=1M count=1 of=./foo
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.513785 s, 2.0 MB/s
makholm@korovyov:~$ for i in {1..5} ; do tar -rf foo.tar foo ; ls -lh foo.tar ; done
-rw-r--r-- 1 makholm makholm 1.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 2.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 3.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 4.1M 2011-01-22 01:07 foo.tar
-rw-r--r-- 1 makholm makholm 5.1M 2011-01-22 01:07 foo.tar
makholm@korovyov:~$ 

This makes it pretty useless for something like incremental backups since your tarball will just grow with tons of duplicate files with each run...

Even cpio, which is generally a much more robust archiver does the same thing in this case.

If you want to do incremental backups, look into rsync and what it can do for you in terms of delta transfers and linking to previous versions of files...

套路撩心 2024-10-20 07:05:04

非常可靠。 tar 不会在文件头中存储有关存档内条目的任何信息,因此附加工作正常。请记住,追加确实意味着追加,因此任何与旧条目同名的新条目都不会从存档中删除旧条目。

Very reliable. tar doesn't store any information about the entries within the archive in the file header, so appending works fine. Just remember that append really does mean append, so any new entries with the same name as older ones will not remove the older entries from the archive.

吲‖鸣 2024-10-20 07:05:04

与您的硬件一样可靠。
哪个不是。

另外,我不确定它会取代。

As reliable as your hardware.
Which is not.

Also, I am not sure it will replace.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文