我想创建一个存档,捕获目录的整个结构,包括子目录和文件。最好保留文件属性,例如修改时间。存档不应包含任何内容但是文件。
换句话说,我试图实现的效果与我创建目录的精确副本、将其中所有文件的大小修剪为零、然后使用 将其存档相同tar
。
我查看了各种tar
选项,但似乎不支持我需要的。我以为会有类似的东西,但--use-compress-program=true
不幸的是,那个应用于整个档案,而不是单个文件。我也没有发现任何相关的rsync
选项。
有没有办法用 unix 工具创建这样的档案?
答案1
乍一看(没有文件/目录的日期):
find data -type d -exec echo mkdir -p {} \; | ( cd tmp7 ; bash )
find data -type f -exec echo touch {} \; | ( cd tmp7 ; bash )
在哪里
- 数据是你的来源
- tmp7 你的目的地
答案2
这个问题有点老了,我的回答不符合“使用 Unix 工具”的标准,但值得一提的是,Windows 同步工具 Robocopy 只需一个简单的 /CREATE 开关就可以做到这一点(它会从源到目标创建整个文件树,文件长度为 0,但保留所有时间戳,如果还使用了 /DCOPY:T 开关,则保留目录的时间戳)。这是一个 Windows 工具可以轻松完成一些技巧的例子,而这显然无法通过 Linux/Unix 系统上的简单方法实现。