linux 下解压缩多个zip文件

zsy23601238 2013-03-27 09:41:11
有TB级别zip压缩文件,而且在不同文件夹中有重复的文件。空间有限,无法把所有文件都同时解压出来。
现在想把所有文件都解压出来。因此只能将一个文件加压,如果有重名的文件,则留下体积比较大的文件,将体积较小的重复文件以及zip文件删除以获得空间。。
只能在shell里面做。
目前自能手动做,实在太慢。

shell里面怎么能够在解压文件的时候按文件的尺寸选择覆盖?

或者有没有其他更可行的方法?
...全文
447 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsy23601238 2013-04-01
  • 打赏
  • 举报
回复
这是我写的code

#!/bin/bash
A="/test"
B="/test/tmp"
archives=$(ls $A *.zip 2>/dev/null)
for archive in "${archives}"  
do
        mkdir -p "${B}" && unzip "${archive}" -d $B
	for file_tmp in 'ls $B *.log 2>/dev/null'
	do
		file_root="${A}${file_tmp}"
			if [-f "${file_root}"] then
				if [[$(stat -c %s "${file_tmp}") -ge $(stat -c %s "${file_root}")]]
					then mv "${file_tmp}" "${file_root}"
				else rm "${file_tmp}"
				fi 
			else mv "${file_tmp}" $A
			fi
done
done
但老是提示 unziptest.sh: line 16: syntax error near unexpected token `else' unziptest.sh: line 16: ` else mv "${file_tmp}" $A' 望高手指点啊!!!!!!!!!!!!!!
zsy23601238 2013-03-28
  • 打赏
  • 举报
回复
主要是在Linux下,而且只能用shell,短时间内我自己搞不定。 你如果能快速搞定的话,能否帮忙? 可少量现金酬劳
引用 4 楼 jike316 的回复:
可以做到的,复杂点咯
2399 2013-03-27
  • 打赏
  • 举报
回复
可以做到的,复杂点咯
zsy23601238 2013-03-27
  • 打赏
  • 举报
回复
解压是在刀片服务器做的,不能装软件 我不太会shell/bash编程。。。你说的过程有sample code吗? 目前我是这样手动做的。。。。
引用 2 楼 ljc007 的回复:
解压缩命令不支持按文件的尺寸选择覆盖,你得自己写。 假设要把所有zip文件解压到/abc/ 先把一个zip解压到/tmp/abc/ 检查/abc/和/tmp/abc的文件是否重名,如果重名就选择大的放到/abc,不重名就从/tmp/abc/移动到/abc/
ljc007 2013-03-27
  • 打赏
  • 举报
回复
解压缩命令不支持按文件的尺寸选择覆盖,你得自己写。 假设要把所有zip文件解压到/abc/ 先把一个zip解压到/tmp/abc/ 检查/abc/和/tmp/abc的文件是否重名,如果重名就选择大的放到/abc,不重名就从/tmp/abc/移动到/abc/
rucypli 2013-03-27
  • 打赏
  • 举报
回复
所有文件按照从小到大排序进行覆盖解压到指定地方

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧