【问题标题】:pack files on windows and preserve folder timestamps在 Windows 上打包文件并保留文件夹时间戳
【发布时间】:2011-07-20 20:33:09
【问题描述】:

我想将 Windows 机器上的一个大文件夹放入一个存档文件(tar、zip、gzip 等)。有没有可以保存所有文件夹时间戳的工具?

在 Linux 机器上解压存档后,必须保留时间戳。

欢迎提出任何想法!

【问题讨论】:

  • 文件夹时间戳是什么意思?您实际上是指文件时间戳吗?您希望保留哪些时间戳?创立日期?修改日期?
  • 修改日期就足够了。

标签: windows zip gzip archive tar


【解决方案1】:

tar 会很好。 gzip 用于单个文件压缩,zip 不会保留目录时间戳。

编辑:示例。

tar jcpf backup.tbz2 thedir
rm -rf thedir
tar jxpf backup.tbz2

保留时间戳。

EDIT2:

cygwin tar 正确保留时间戳。在 cygwin 上使用 tar jcf 进行测试,在 linux 上使用 tar jxf 进行测试。

编辑3: WinRar 保留目录时间戳,linux unrar 正确恢复。

【讨论】:

  • tar 是专为磁带归档而设计的,所以想必如果 tar 做不到,还有什么机会?
  • 我一开始就是这么想的。我尝试使用 7zip 和 gnuwin32 进行 tar。但没有运气。文件夹时间戳丢失。
  • @BetaRide 什么是文件夹时间戳?你的意思是文件夹时间戳还是文件时间戳?
  • tar 为我保留了文件夹和文件的时间戳。不过,我使用的是 tar,而不是碰巧支持 tar 格式的其他存档器。
  • 在 Windows 上,此代码不保留文件夹时间戳。在我的 Ubuntu 机器上可以。不幸的是,我需要一个在 Windows 上创建存档的解决方案。
【解决方案2】:

DotNetZip 保留文件夹和文件的时间戳。

【讨论】:

  • 感谢您的回答,DotNetZip 是一个非常强大的工具!它确实可以保存文件夹时间戳。不幸的是,我必须在 Linux 上解压缩。至少对于 Ubuntu,解压缩无法保留时间戳 :-(.
  • 仅供参考:无论 zip 文件是否包含正确的时间戳,Windows 资源管理器和 TotalCommander 都能够在解压缩 zip 档案时保留时间戳。
  • @BetaRide - 似乎问题出在 Ubuntu 上的解压缩实用程序上,嗯?人们已经在 Mono 上编译了 DotNetZip - 如果你这样做了,那么你可以使用 DotNetZip 在 Linux 上解压缩。
【解决方案3】:

我的所有要求似乎都没有解决方案:

  1. 在 Windows 上打包保留文件夹时间戳
  2. 在 Linux 上解压并保留原始文件夹时间戳
  3. 我更喜欢该工具的复制/粘贴,也就是便携式安装,否则部署会变得复杂。
  4. 仅通过复制必要的 exe 和 dll 文件来进行部分的 cygwin 安装,但不会保留文件夹时间戳。
  5. 完整的 cygwin 安装并不容易,因为 Windows 客户端计算机位于终端服务器上(请参阅 http://www.cygwin.com/faq/faq.setup.html#faq.setup.setup-fails-on-ts
  6. Zip 不起作用,因为在 ubuntu 上解压缩无法保留文件夹时间戳,即使选择的 zip 工具可以。

【讨论】:

  • 问题出在 Ubuntu 上解压。如果您可以在 Ubuntu 上找到或使用不同的解压缩,则可以解决您的问题。例如,在 Ubuntu 上的 Mono 上使用 DotNetZip。
猜你喜欢
  • 1970-01-01
  • 2016-05-07
  • 1970-01-01
  • 2012-05-02
  • 2021-03-08
  • 2022-06-29
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
相关资源
最近更新 更多