Linux下将压缩包解压至同名子目录的方法咨询
解决Zip解压后文件自动放入指定目录的问题
嘿,这个问题其实很典型——你当前的打包方式是直接把当前目录下的文件塞进zip包,所以解压时它们会直接平铺在当前工作目录里。要实现你期望的「解压后文件自动进入Test_Files子目录」的效果,有两种简单可行的方案:
方案一:打包时直接添加目录前缀(推荐)
如果你还没打包,或者可以重新打包,直接用zip命令的--prefix参数给所有文件加上目标目录前缀就行。在/tmp/test_dir目录下执行:
zip -r Test_Files.zip * --prefix Test_Files/
这样生成的Test_Files.zip里,所有文件都会被放在Test_Files目录下。之后不管你在哪个目录解压,都会自动创建Test_Files文件夹并把file1放在里面,完全符合你的期望。
方案二:已打包文件,解压时指定目标目录
如果已经有了现成的Test_Files.zip不想重新打包,那可以在解压时用unzip的-d参数指定解压目标目录:
unzip Test_Files.zip -d Test_Files
这条命令会在当前工作目录下创建Test_Files文件夹,并把zip里的所有文件都解压到这个文件夹里,最终得到/tmp/test_dir/Test_Files/file1的结构。
补充说明
- 方案一的优势是打包一次,后续不管在哪解压都能保持正确的目录结构,适合需要分发zip包的场景;
- 方案二更灵活,适合临时调整解压路径的情况。
内容的提问来源于stack exchange,提问作者itgeek
相关产品推荐
相关产品推荐

