基本上我想创建文件夹结构的 tar 映像,但不存储实际的文件内容。因此,当我解压文件时,我想获取原始文件夹、文件名、时间戳等,但所有零长度文件而不是原始文件内容。
这里的目的是捕获巨大文件夹(大小为千兆字节)的文件夹结构,而不创建多千兆字节的 tar 文件。
提前致谢。
答案1
如果你cp
是足够强大, 你可以这样做:
cp -a --attributes-only olddir newdir
哪里newdir
还不存在并且--attributes-only
意味着
仅将源文件的指定属性复制到目标。 […]
这不会复制数据;常规文件的newdir
大小为零。请注意,您需要成为 root 才能复制所有属性(例如所有权),因此也许您需要sudo cp …
.相反,-a
您可以使用更具体的选项来仅复制您真正需要的属性。
无论如何,在创建newdir
包含空文件后,只需tar
此目录而不是olddir
.
答案2
star
18 年来一直支持这个......尝试:
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 的一部分。