我需要用这个命令创建一个zip文件:
zip /dir/to/file/newZip /data/to/zip/data.txt
这是可行的,但是创建的zip文件创建了一个目录结构,模拟原始文件的目录。这是很多我不需要的额外文件夹。
我并没有在手册页或谷歌搜索中找到答案。
我需要用这个命令创建一个zip文件:
zip /dir/to/file/newZip /data/to/zip/data.txt
这是可行的,但是创建的zip文件创建了一个目录结构,模拟原始文件的目录。这是很多我不需要的额外文件夹。
我并没有在手册页或谷歌搜索中找到答案。
当前回答
有点相关-我正在寻找一个解决方案,为目录做同样的事情。 不幸的是-j选项并不适用于此:(
下面是一个很好的解决方法: https://superuser.com/questions/119649/avoid-unwanted-path-in-zip-file
其他回答
你可以用-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).
或者,你可以创建一个临时符号链接到你的文件:
ln -s /data/to/zip/data.txt data.txt
zip /dir/to/file/newZip !$
rm !$
这也适用于目录。
使用-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).
有点相关-我正在寻找一个解决方案,为目录做同样的事情。 不幸的是-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