Jui*_*icy 160 command-line zip
我有一个名为的目录folder,如下所示:
folder
-> root_folder
-> some files
Run Code Online (Sandbox Code Playgroud)
我想把这个目录压缩到zipped_dir,我试过:
zip -r zipped_dir.zip folder/*
Run Code Online (Sandbox Code Playgroud)
但这会生成一个看起来像这样的 ZIP:
zipped_dir
-> folder
-> root_folder
-> some files
Run Code Online (Sandbox Code Playgroud)
换句话说,它包括我想要压缩其内容的目录。如何在不移动任何内容的情况下从 ZIP 中排除此父目录?
IE 我想要这个最终结果:
zipped_dir
-> root_folder
-> some files
Run Code Online (Sandbox Code Playgroud)
Rom*_*nov 139
尝试使用这个命令(你会明白的)
cd folder; zip -r ../zipped_dir.zip *
Run Code Online (Sandbox Code Playgroud)
也许还有其他方法,但这对我来说是最快和最简单的:)
小智 71
使用-j; 例如:zip -r -j zipped_dir.zip folder/*
它不会压缩“root_folder”。
这对我有用:
7z a zipped.zip ./rootDir/*
Run Code Online (Sandbox Code Playgroud)
它将创建一个zip带有 root的存档:任何文件/目录中的rootDir. 例如
zipped.zip:
file1.txt
otherdir/
file2.txt
Run Code Online (Sandbox Code Playgroud)
正如在@Shiva Wu评论中正确指出的那样,上述内容不包括隐藏文件。
这也为答案的其余部分的情况下(至少其中保存目录结构的那些)。一种解决方案是显式添加隐藏路径通配符。
zipped.zip:
file1.txt
otherdir/
file2.txt
Run Code Online (Sandbox Code Playgroud)
或者
# The command below will include all files and directories starting with a dot.
7z a zipped.zip ./rootDir/* ./rootDir/.[!.]*
Run Code Online (Sandbox Code Playgroud)
结果:
zipped.zip:
file1.txt
.hiddenfile1.txt
.hiddendir/
file3.txt
otherdir/
file2.txt
Run Code Online (Sandbox Code Playgroud)