关于批量解压的问题!

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
jin0828
帖子: 193
注册时间: 2007-09-04 5:23
来自: 福建福州
联系:

关于批量解压的问题!

#1

帖子 jin0828 » 2009-01-03 22:28

如果我有一些rar压缩文件,分布在一个pic的下一级不同名字的文件夹中,我现在要解压pic下包括子目录下的所有压缩文件,shell应该怎么写?


文件夹结构是这样的:
首先是主目录pic,这个目录下有文件夹“汽车”(这里面放的是汽车 类型的图片压缩包)、“动物”(这里面放的是动物类型的图片压缩包)、“建筑”(这里放的是建筑类型的压缩包)

现在就是想把汽车类型的解压到汽车文件夹,动物解压到动物文件夹,建筑解压到建筑文件夹。。。。。。。
内练一口气,外练一口屁,不内不外练志气!
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 关于批量解压的问题!

#2

帖子 aerofox » 2009-01-03 22:56

代码: 全选

for d in 汽车 动物 建筑; do
    cd $d
    for f in *.rar; do unrar e "$f"; done
    cd -
done
或者

代码: 全选

for f in */*.rar; do
    unrar e "$f" "${f%/*}/"
done
头像
jin0828
帖子: 193
注册时间: 2007-09-04 5:23
来自: 福建福州
联系:

Re: 关于批量解压的问题!

#3

帖子 jin0828 » 2009-01-03 23:02

这些应该是shell脚本的代码吧?

如果是在命令行模式下还有其他的方法吗?

(问题已解决,现在想学习学习其他的方法,linux下解决这类问题的办法应该很多吧!)

:em02 :em02 :em02 :em02
内练一口气,外练一口屁,不内不外练志气!
头像
Ur@nus
帖子: 622
注册时间: 2006-12-01 23:02

Re: 关于批量解压的问题!

#4

帖子 Ur@nus » 2009-01-03 23:03

提个醒,ls ./pic>file 然后在脚本里读file文件用do把pic文件夹下的目录名分别付给变量i,然后针对每个i,cd 一次然后unrar到当前文件夹。
看看其他人有什么好办法。呵呵
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 关于批量解压的问题!

#5

帖子 aerofox » 2009-01-04 12:17

jin0828 写了:这些应该是shell脚本的代码吧?

如果是在命令行模式下还有其他的方法吗?

(问题已解决,现在想学习学习其他的方法,linux下解决这类问题的办法应该很多吧!)

:em02 :em02 :em02 :em02
脚本和命令行模式没有什么本质区别,只不过一个是批处理模式,一个是交互式模式。
头像
jin0828
帖子: 193
注册时间: 2007-09-04 5:23
来自: 福建福州
联系:

Re: 关于批量解压的问题!

#6

帖子 jin0828 » 2009-01-04 19:27

那命令行模式的话,要实现这个脚本的功能,命令要怎么写?
内练一口气,外练一口屁,不内不外练志气!
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 关于批量解压的问题!

#7

帖子 xiooli » 2009-01-04 19:39

jin0828 写了:那命令行模式的话,要实现这个脚本的功能,命令要怎么写?
把换行用;替换
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 关于批量解压的问题!

#8

帖子 aerofox » 2009-01-04 21:36

照样写也可以,不过我喜欢用分号代替换行,因为看历史记录时方便些。
回复