【发布时间】:2016-03-23 13:47:45
【问题描述】:
我在一个文件夹中有很多 zip 文件,例如:
abc.zip、xyz.zip、....等
我想解压这些文件,但要解压到同名文件夹中:
abc、xyz、...等
我喜欢这样:
解压缩'*.zip'或
因为我在文件夹中;解压 $i;完毕它不起作用,因为它会将这些 zip 文件的所有内容提取到一个文件夹中。
你能帮忙吗?谢谢。 PS:我用的是Mac
【问题讨论】:
-
Mac 解压缩是否有“-d”(将文件解压缩到 exdir)选项?如果是这样,您应该可以做到
for f in ``ls *.zip``; do mkdir "${f%.*}"; unzip $f -d "${f%.*}"; done。如果没有“-d”,则执行 cd 进入目录,然后在 zip 后 cd 返回。 (双反引号应该是单引号,但代码粘贴不支持)。 -
不要使用
ls输出任何东西。 ls 是一个交互式查看目录元数据的工具。任何用代码解析ls输出的尝试都会被破坏。 Glob 更加简单和正确:`for file in *.txt。阅读Parsing ls -
@RanyAlbegWein,你说得对,
ls输出可能有问题。但我们不要说任何尝试都失败了。 -
如果您对环境有足够的了解,可以冒险执行这样一个使用
ls作为输入源的脚本,那很好。问题是您永远足够了解环境,尤其是当您在网络上共享代码时。你的代码坏了。要找出您不想在系统上使用它或与他人共享它的原因,请阅读Parsing ls。
标签: shell command-line