linux批量解压zip

方法一

1,创建unzip.sh

复制代码
#!/bin/bash

while read line
do
unzip $line

done < filelist.txt

#!/bin/bash

while read line
do
    unzip "$line" >& log &
done < filelist.txt
  1. 在终端中执行以下命令

$ chmod +x unzip.sh

$ ./unzip.sh

这样就可以批量解压缩filelist.txt中列出的所有文件了。

unzip test.zip -d /home/test_folder/

该命令将将test.zip中的所有文件和子目录解压缩到/home/test_folder/中。

方法二

复制代码
nohup unzip -n '*.zip' -d T85_SAFE >& unzip.log &
  • nohup:这是一个Linux命令,它用于在后台运行其他命令,并且可以使命令在终端关闭后继续运行,不会受到终端会话的影响。

  • unzip -n '*.zip' -d T85_SAFE :这是你要在后台运行的实际命令。它解压位于当前目录下的所有ZIP文件,而-n选项表示不覆盖已存在的文件, -d 在子目录下面。

  • >& unzip.log:这部分将标准输出和标准错误都重定向到一个名为unzip.log的文件中。这意味着命令的输出和错误信息都会写入到unzip.log 文件中,以便稍后查看。

  • &:这是一个放在命令末尾的符号,表示将命令放入后台运行,以便你可以继续在终端中执行其他操作,而不会等待命令执行完毕。

综合起来,这个命令的目的是在后台运行unzip命令来解压ZIP文件,同时将输出和错误信息保存到名为unzip.log的文件中,而不会影响终端的使用。

复制代码
nohup unzip -n '*.zip' -d extracted > unzip.log 2>&1 &

这将使用>符号将标准输出(stdout)重定向到unzip.log文件,并使用2>&1将标准错误(stderr)也重定向到unzip.log文件,以便将输出和错误信息都保存到同一个日志文件中。

这样做后,你可以查看unzip.log文件以查看unzip命令的输出和错误信息。

如果中断,继续解压剩下的

复制代码
unzip -n remaining.zip -d extracted
  1. 其中,remaining.zip是尚未解压的ZIP文件的名称,extracted是你的目标解压目录。

  2. 如果你中断解压时使用了unzip-n选项,它将尝试防止覆盖已存在的文件。但如果之前的解压已经创建了部分文件,新的解压可能会导致文件冲突。你可能需要手动解决这些冲突。

  3. 最好的做法是在解压之前备份原始ZIP文件,以便在出现问题时可以回滚到原始状态。

请注意,尽管你可以尝试继续解压中断的ZIP文件,但这并不保证解压后的文件一定是完好无损的。如果你中断解压时文件已经受损,可能需要重新下载或从备份中恢复文件。

方法三

复制代码
nohup sh -c 'while read -r line; do unzip -n "$line" -d extracted; done < testlist' > unzip.log 2>&1 &

这个命令将从testlist文件中逐行读取ZIP文件的列表,然后使用unzip命令逐个解压文件。输出和错误信息将重定向到名为unzip.log的文件,而整个命令将在后台运行。

复制代码
#!/bin/bash

while read -r line
do
  unzip -n "$line" -d extracted >> unzip.log 2>&1 &
done < filelist.txt

find extracted -type f -name "*vh*" -exec rm {} \;

这个命令将在名为extracted的目录中查找文件名包含"vh"的多个文件,并删除它们,同时保留文件夹。确保将 extracted 替换为实际的解压目录名称。

这将批量删除包含"vh"的多个文件,但保留文件夹。请小心使用这个命令,确保你真正希望删除的文件名包含"vh",并且确保你备份了重要文件。删除文件是不可逆操作,无法恢复。

方法四

vim unzip.csh

复制代码
#!/bin/csh
foreach line (`cat filelist`)
foreach? unzip $line
foreach? end

chmod +x unzip.csh

nohup ./unzip.csh >& unzip.log &

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式