zip -mqj archive.zip file.txt
现在,我需要在'archive.zip'中将'file.txt'存储为'file2.txt',而不必在压缩之前重命名文件。 当解压缩时,该文件应该被称为“file2.txt”。
如何以不同的名称存储文件? 仔细阅读MAN页面,没有find答案。
创build一个硬链接到file.txt计数?
ln file.txt file2.txt
创build指向与file.txt完全相同的inode的file2.txt,而不是实际上将空间加倍
请参阅https://stackoverflow.com/questions/16710341/linux-zip-command-add-a-file-with-different-name
下面的解决scheme是在stackoverflow上@mkrnr的答案的确切副本
您可以使用应该与zip包一起提供的zipnote。
首先用myfile.txt文件构buildzip文件:
zip archive.zip myfile.txt
然后用以下命令将zip文件内的myfile.txt重命名为:
printf "@ myfile.txt\n@=myfile2.txt\n" | zipnote -w archive.zip
(感谢Jensbuild议printf
而不是echo -e
。)
"@ myfile.txt\n@=myfile2.txt\n"
简短说明:
从zipnote -h
:“@ name”后面可以跟一个“@ = newname”行来更改名称
并\n
分离这两个命令。
Hy在那里,这是我的第一个答案,所以我希望我已经做了一切正确的:-)
这是我的解决你的问题,一个很好的一行:
cp file.txt file2.txt | zip -mqj archive.zip file2.txt
希望我能帮助!