linux zip 怎样只压缩文件,不要包含路径?

zip -r -P 123456 $zip_path $file_path

适合于某些文件导出,但并不希望用户知道服务器上文件存放路径信息的需求。
正常在Linux下直接使用命令。
zip jcvf file.zip files
压缩files目录时,如果当前files路径是在/home/www/files下,压缩后的file.zip会将包含files的绝对路径
使用-j参数:不处理压缩文件中原有的目录路径
$zip -qj file.zip /home/www/files
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-02-17
因为你压缩时使用的是绝对路径,而tar会保留原来的目录结构。

假如我执行的是:
[root@localhost home]#tar -zcvf test.tar.gz /home/june/*.txt
打开得到的压缩包可以看到里面包含了1.txt和2.txt的完整路径目录结构,即home/azune/june

所以如果只是日常压缩解压的话,可以用相对路径,或者直接cd到该目录下进行,假如我压缩的是/home/azune/june下的a.txt和b.txt:
cd /home/azune/june
tar -zcvf /home/azune/test.tar.gz /*.txt
那么现在 test.tar.gz 就不会包含任何目录结构了,假如我要解压到 /test 下,不管是 cd 到 /test 下再解压还是用 -C 指定解压到 /test ,在/test 下得到的文件都是 a.txt 和 b.txt

这是个人的一点小见解,仅供参考。
第2个回答  2017-05-16
命令示例如下: $ zip -jr files.zip dir1/file1 dir2 该命令的作用是生成files.zip文件,其中包含 1 dir1目录下的file1文件 2 dir2目录下的所有文件(递归查找子目录中的所有文件)
第3个回答  2013-07-11
不加-P参数就可以了。就不会有绝对路径存在追问

-P是在添加压缩文件的时候进行了加密 去掉不行啊 123456 是压缩文件的密码 去掉后 压缩文件名称变成123456了 并且没有加密了

第4个回答  2013-07-11
用tar zcvf filename dir
相似回答