【发布时间】:2011-12-31 18:40:01
【问题描述】:
我想压缩一个子目录并将其发送到其他地方,我遇到的问题是,当我使用 zip 命令时,它还包括我不想要的所有不需要的目录层。
例如
zip -r /new.zip /Unwanted1/Unwanted2/wanted1/wanted2/file.txt
###unzipped produces the following
/Unwanted1/Unwanted2/wanted1/wanted2/file.txt
###I want
/wanted1/wanted2/file.txt
更新:我要压缩的目录有很多嵌套目录,因此 -r.处理绝对路径也很好,旧的解决方案是用来 cd 关于这个地方的,但我只是不太喜欢它。也许这是最好的(唯一的)方式。
【问题讨论】:
-
-r表示递归。如果您真的需要使用它,那么您应该阅读排除的 zip 选项。如果您只想压缩一个文件,请 cd 到相应的父目录(根据您的示例)./Unwanted1/Unwanted2 然后zip new.zip wanted/file.txt。也就是说,我认为没有 zip 选项意味着“丢弃输入文件名的前 n 层子目录信息”。祝你好运。 -
您已经编辑了您的示例,这极大地改变了游戏。人们通常不想要这样的绝对路径。 “zip”中可能有更多路径修剪/控制选项,但我对此表示怀疑。阅读手册页。或者切换到“tar”并阅读那个(同样长的)手册页。而且,如果要添加单个文件,无论多深,您仍然不需要 -r。