创buildzip – 忽略目录结构

我需要使用该命令创build一个zip

zip /dir/to/file/newZip /data/to/zip/data.txt 

这个工作,但创build的zip文件创build一个目录结构模仿目录到原始文件。 这是很多额外的文件夹,我不需要。

我没有在手册页或谷歌search上匆匆看过一个答案。

你可以使用-j

 -j --junk-paths Store just the name of a saved file (junk the path), and do not store directory names. By default, zip will store the full path (relative to the current directory). 

使用-j选项:

  -j Store just the name of a saved file (junk the path), and do not store directory names. By default, zip will store the full path (relative to the current path). 

有点相关 – 我正在寻找一个解决scheme来做同样的目录。 不幸的是,-j选项不适用于这:(

这里有一个很好的解决方法: https : //superuser.com/questions/119649/avoid-unwanted-path-in-zip-file

使用-j将不会与-r选项一起使用。
所以解决它的办法可以是这样的:

 cd path/to/parent/dir/; zip -r complete/path/to/name.zip ./* ; cd -; 

或者在线版本

 cd path/to/parent/dir/ && zip -r complete/path/to/name.zip ./* && cd - 

如果不希望cd -输出出现在屏幕上,可以将输出定向到/dev/null

或者,您可以创build一个临时的符号链接到您的文件:

 ln -s /data/to/zip/data.txt data.txt zip /dir/to/file/newZip !$ rm !$ 

这也适用于一个目录。

接受的解决scheme不适合我,因为我有我需要压缩的文件和文件夹。 如果我使用-j选项,则不会将这些文件夹添加到压缩文件中。 我发现这个解决scheme适合我:

 tar -czpvf filename.zip -C path/to/directory/folder . 

“文件夹”中的所有内容都将位于zip,文件和文件夹中。 请注意,您必须在最后添加句点。

焦油不为我工作。

 tar -czpvf filename.zip -C path/to/directory/folder . 

当我尝试解压缩这样的filename.zip时出现错误

未find中央目录签名末尾。

jar子工作正常。

 jar cvf filename.zip -C path/to/directory/folder .