创建存储文件名但不存储文件内容的 tar 文件

创建存储文件名但不存储文件内容的 tar 文件

基本上我想创建文件夹结构的 tar 映像,但不存储实际的文件内容。因此,当我解压文件时,我想获取原始文件夹、文件名、时间戳等,但所有零长度文件而不是原始文件内容。

这里的目的是捕获巨大文件夹(大小为千兆字节)的文件夹结构,而不创建多千兆字节的 tar 文件。

提前致谢。

答案1

如果你cp足够强大, 你可以这样做:

cp -a --attributes-only olddir newdir

哪里newdir还不存在并且--attributes-only意味着

仅将源文件的指定属性复制到目标。 […]

这不会复制数据;常规文件的newdir大小为零。请注意,您需要成为 root 才能复制所有属性(例如所有权),因此也许您需要sudo cp ….相反,-a您可以使用更具体的选项来仅复制您真正需要的属性。

无论如何,在创建newdir包含空文件后,只需tar此目录而不是olddir.

答案2

star18 年来一直支持这个......尝试:

star -c -dump -meta ... | star -tv

这将所有条目列为“m”eta 类型文件...

star -c -dump -meta ... | star -C todir -xmeta

将所有文件提取为 0 字节大小的文件。

star -c -dump -meta ... | star -C todir -xmeta -force-hole

将所有文件提取为原始大小的文件,不含数据(稀疏文件)。

star是 schilytools 的一部分。

相关内容