全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 507|回复: 10

linux下批量压缩文件夹的命令求助。谢谢五湖四海的各位大佬

[复制链接]
发表于 2020-5-28 09:51:22 | 显示全部楼层 |阅读模式
在/home/123/A  
这个A目录下面,很多个文件夹,
比如:
/home/123/A/1    
/home/123/A/2   
/home/123/A/3  
在1  2  3  下面也会有文件夹,我想批量压缩这些文件夹。
/home/123/A/1/ts  
/home/123/A/2/ts1  
/home/123/A/3/ts2  

请问怎么批量压缩了。不含有/home/123/A/ 路径
文件名是生成的是A目录下。各个文件夹名称呢

我用这个命令。会带有路径在压缩包呢
for i in `find ./* -type d`;do zip $i.zip ./$i/*;done

发表于 2020-5-28 09:52:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2020-5-28 09:57:10 来自手机 | 显示全部楼层
h20 发表于 2020-5-28 09:52
你是要单个单独压缩?

如是,find + xargs

阅题错误。
发表于 2020-5-28 09:58:30 | 显示全部楼层
本帖最后由 夏生啊 于 2020-5-28 10:04 编辑

试试
  1. for i in `find ./* -type d`;do zip ${i##*/}.zip ./$i/*;done
复制代码
 楼主| 发表于 2020-5-28 10:11:39 | 显示全部楼层

好的。谢谢大佬。
 楼主| 发表于 2020-5-28 10:15:44 | 显示全部楼层
h20 发表于 2020-5-28 09:52
你是要单个单独压缩?

如是,find + xargs

大佬。命令呢
 楼主| 发表于 2020-5-28 12:06:20 | 显示全部楼层

大佬。报错呢

zip error: Nothing to do! (2017.01.13.zip)
        zip warning: name not matched: ./VOL.021/*
发表于 2020-5-28 12:33:09 | 显示全部楼层
使用zip -j参数不会保留文件前面的路径
 楼主| 发表于 2020-5-28 13:57:52 | 显示全部楼层
Slime 发表于 2020-5-28 12:33
使用zip -j参数不会保留文件前面的路径

那批量压缩呢。命令应该怎么写呢
发表于 2020-5-28 14:41:58 | 显示全部楼层
本帖最后由 Slime 于 2020-5-28 14:43 编辑
飘云 发表于 2020-5-28 13:57
那批量压缩呢。命令应该怎么写呢

  1. find -type d -exec zip -qrj '{}'.zip '{}' ';'
复制代码


因为是批量压缩,而且带有-j参数,这样做会报路径相同的错误,但压缩是没问题的,解压的时候要小心一点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-16 12:06 , Processed in 0.067756 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表