bash - 如何使用单个命令将目录中的每个文件解压缩到与文件同名的新的唯一目录中

标签 bash unzip

我有一个充满 zip 文件的目录。每个都称为“files1.zip”之类的东西。 我的直觉是使用 bash for 循环来解压缩每个文件。

问题是,许多文件会将其内容直接解压缩到父目录中,而不是将所有内容展开到它们自己的唯一目录中。所以,我得到了文件汤。

我想确保“files1.zip”将其所有文件放入名为“files1”的目录中,依此类推。

更复杂的是,一些文件名有空格。

我该怎么做?

谢谢。

最佳答案

for f in *.zip; do
  dir=${f%.zip}

  unzip -d "./$dir" "./$f"
done

关于bash - 如何使用单个命令将目录中的每个文件解压缩到与文件同名的新的唯一目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220060/

相关文章:

java - 如何使用 zip4j 提取带密码保护的 zip 文件

linux - 使用 Perl 解压缩文件时如何找出错误代码的含义?

hadoop - 如何在Hadoop中解压缩拆分的zip文件

bash - 使用后台进程退出 shell 脚本

python - 将标准输出重定向到文件显示错误内容

python - 使用 Python mkdtemp() 解压缩到临时(内存中)目录?

android - 如何在安装 .apk 时将一些文件从 .apk 解压到/data/data/<package> 文件夹?

bash进程替换+在主进程和子进程中使用相同的变量

linux - 创建自定义 Vim 命令以在 bash 配置文件中运行函数

bash - 在后台 BASH 上运行 Matlab