在linux系统里面 将/data/test/里面所有的zip格式压缩包 用解压密码为123456将zip格式的压缩包里面的文件解压到 /data/test2/里面并且解压的同时 将解压出来的文件名字重命名为压缩包的名字
时间: 2024-09-20 20:05:41 浏览: 33
php解压缩zip和rar压缩包文件的方法
在Linux系统中,你可以使用`unzip`命令配合通配符和管道操作来完成这个任务。假设所有.zip文件都在 `/data/test/` 目录下,并且解压密码都是 `123456`,你需要将它们解压到 `/data/test2/` 并替换文件名。以下是一个命令行示例:
```bash
cd /data/test/
find . -type f -name "*.zip" -print0 | xargs -0 -P 8 unzip -o -j -P '123456' -d /data/test2/ && mv /data/test2/* /data/test2/$(basename %p)
```
解释一下这个命令:
1. `cd /data/test/`: 切换到目标目录 `/data/test/`
2. `find . -type f -name "*.zip" -print0`: 使用`find`查找当前目录下的所有`.zip`文件,并以null字符分隔输出, `-print0`用于处理包含空格的文件名。
3. `xargs -0 -P 8`: 使用`xargs`并指定输入由null字符分隔,最多并行运行8个`unzip`进程,以提高效率。
4. `unzip -o -j -P '123456' -d /data/test2/`: 解压每个找到的zip文件 (-o表示覆盖同名文件,-j表示解压后保持原文件结构),密码为 `123456`,解压到 `/data/test2/` 目录。
5. `mv /data/test2/* /data/test2/$(basename %p)`: 将 `/data/test2/` 中的所有文件移动到同一个目录下,并用原zip文件名替换。
注意:这里假设你的权限允许在指定目录进行解压操作。如果需要管理员权限,可以添加 `sudo` 前面。
阅读全文