【问题标题】:Linux zip command: add a file with different name [closed]Linux zip命令:添加不同名称的文件[关闭]
【发布时间】:2013-05-23 09:33:20
【问题描述】:

我想在 zip 文件中添加一个具有不同名称的文件,并避免创建具有所需名称的新文件。例如,我想将 myfile.txt 文件添加到 zip,但将其重命名为 myfile2.txt。

谢谢

【问题讨论】:

  • 不明白为什么离题
  • 我也投票认为这不是题外话。 zip 是捆绑发布的标准开发工具。在Makefile 中捆绑分发文件时更改它们的名称可以被认为是一种非常常见的做法。因此,如果有一个解决方案不包含副本到临时文件/目录中,这是一个非常受欢迎的习惯用法,用于解决非常常见的编程任务。
  • 投票以work request 关闭。
  • 这似乎很武断,因为离题而被关闭。有很多关于如何在 SO 上使用 zip 命令的问题尚未被关闭为题外话。我投票决定重新开放。从所有的赞成票来看,这是一个很好且有用的问题。

标签: linux command zip rename


【解决方案1】:

您可以使用 zipnote,它应该与 zip 包一起提供。

首先使用 myfile.txt 文件构建 zip 存档:

zip archive.zip myfile.txt

然后将 zip 存档中的 myfile.txt 重命名为:

printf "@ myfile.txt\n@=myfile2.txt\n" | zipnote -w archive.zip

(感谢Jens 建议printf 而不是echo -e。)

"@ myfile.txt\n@=myfile2.txt\n"的简短解释:

来自zipnote -h:“@name”后面可以跟一个“@=newname”行来更改名称

\n 将两个命令分开。

【讨论】:

  • 轻微挑剔:echo -e 是一个不可移植的 SysVism。我会使用printf "@ myfile.txt\n@=myfile2.txt\n" | ...
  • 好点。修改了我的答案。
  • 我不知道为什么,但我可以让它工作。看看我的问题 - stackoverflow.com/questions/22974139/how-to-use-zipnote-command
  • 注意:如果你想做多个文件名更改,你需要在每个块后面加上@ (comment above this line)\n
  • 改个目录名怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 2013-11-14
  • 1970-01-01
相关资源
最近更新 更多