folder
的目录,看起来像这样:folder
-> root_folder
-> some files
我想将此目录压缩到
zipped_dir
中,我试过了: br /> 但这会生成一个看起来像这样的ZIP:如何在不移动任何内容的情况下从ZIP中排除此父目录?
IE,我希望得到此最终结果:
zip -r zipped_dir.zip folder/*
#1 楼
尝试使用此命令(您将会明白)cd folder; zip -r ../zipped_dir.zip *
也许还有其他方法,但这对我来说是最快,最简单的方法:
#2 楼
使用-j
;例如:zip -r -j zipped_dir.zip folder/*
不会压缩“ root_folder”。
评论
如果我有两个同名文件,我会得到一个错误。
–克里斯
16年1月1日在22:06
OP可能只希望删除父目录,而不是全部删除。
–托克兰
17年3月13日在10:13
它也会展平子目录文件。
– Sumit Ramteke
18年5月10日在7:19
-j选项消除所有目录信息,仅保存文件。也就是说,以“固定”方式将所有文件存储在一个目录下。
–罗伯特
18/09/13在2:34
这不应该是公认的答案
– Dimitri Kopriwa
19-10-13在18:14
#3 楼
zip -r -D zipped.zip *
-D
指示zip不创建目录。评论
这是最干净的解决方案。
–海德
20年6月11日在4:22
在Mac OS zip中似乎不是有效的选项
– dtech
20年7月16日在8:30
在macOS中工作。不要忘记使用*会排除隐藏文件,因此我最终使用了。:zip -D -r ../archive.zip。
– Justinas Lelys
20 Sep 10 '13:55
#4 楼
这是对我有用的方法:例如,zipped.zip:
file1.txt
otherdir/
file2.txt
隐藏文件:
正确指出
7z a zipped.zip ./rootDir/*
的注释,上面的内容不包含隐藏文件。其余的答案也是如此(在至少保留目录结构的文件)。一种解决方案是显式添加隐藏路径通配符。
zip
OR
rootDir
结果:
zipped.zip:
file1.txt
.hiddenfile1.txt
.hiddendir/
file3.txt
otherdir/
file2.txt
评论
我需要的最佳答案。
–马辛
20年1月1日,下午2:27
那应该是公认的答案,而且肯定更高。无需更改目录,而是简单明了。
–geo909
20-3-31在10:49
这不处理./rootDir/.xxx。它应该类似于.rootDir /{.*,*}
– Shiva Wu
20年5月11日,1:50
@ShivaWu正确!我已经更新了答案。注意:有效的通配符(至少在bash上有效)与您提供的通配符略有不同。
– Marinos An
20-5-11在10:53
评论
这完美地完成了这个技巧。注意:它将执行chroot。
– loretoparisi
16年8月25日在14:24
@TobiasKolb,也许您没有阅读问题。 OP不想将文件夹放入zip的存储路径中。
–罗密欧·尼诺夫(Romeo Ninov)
18/09/12在10:55
似乎唯一的方法
–罗伯特
18/09/13在2:32
这不会添加隐藏文件
–Gus
18年11月25日在0:53
@PabloDiaz,在我的示例中cd-将完成工作(仅一个命令):)或cd ..
–罗密欧·尼诺夫(Romeo Ninov)
19年2月15日在18:37