LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 04-03-25, 11:54 第 1 帖
zBS
 
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 46
  精华: 1
 

标题: 【求助】一个自动解压缩rar的脚本。1点问题。


我想在用户把需要传完的dvdrip文件夹,移动到unrar目录就实现自动解压缩然后放到over目录,因为本人接触*nix不久,菜鸟一个。麻烦大家帮偶看看

我先说下我的思路
我是用这一行代码来进行的
ls|awk '{print"cd ""\""$1"\"""&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar"}'|sh
用ls列出目录下的文件夹然后用awk添加要执行的命令 如果进入到这个目录就执行eavi这个脚本解压缩然后不管命令是否成功都返回到unrar目录再执行下一个命令

[root@ftp unrar]# ls|awk '{print"cd ""\""$1"\"""&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar"}'
cd "Now.Where.Did.The.Seventh.Company.Get.To.1973.DVDRip.XviD-HFDX"&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar
cd "Prime.Suspect.6.The.Last.Witness.2003.DVDRip.XviD-EXiLE"&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar
cd "Welcome.To.Mooseport.DVDSCR.XViD-DVL"&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar

大家看看我的eavi脚本

#!/bin/bash

rar x -y *.rar&&rm -f *.[rR]?? \[* *.[Ss][Ff][Vv]&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
rar x -y *.RAR&&rm -f *.[rR]?? \[* *.[Ss][Ff][Vv]&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
#解压缩根目录下的*.rar文件然后把rar文件和*.sfv文件删除还有[M.C] - ( 706M 50F - COMPLETE ) - [CmFtP]这类文件
rar x -y *01.rar&&rm -f *.[rR]?? \[* *.[Ss][Ff][Vv]&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
rar x -y *01.RAR&&rm -f *.[rR]?? \[* *.[Ss][Ff][Vv]&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
#如果是采用winrar新版本的分卷压缩就压缩就从第一个卷开始解压缩然后删除其他文件
rar x -y -r *.rar&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
rar x -y -r *.RAR&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
rar x -y -r *01.rar&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
rar x -y -r *01.RAR&&ls -l|grep '^d'|awk '{print $9}'|xargs rm -fr
#如果这个dvdrip有多cd就解压缩到目录下然后删除子目录


请问大家有什么好的办法么?先谢过了
  zBS 当前离线   回复时引用此帖
旧 04-03-25, 12:10 第 2 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

没用过rar,
  KornLee 当前离线   回复时引用此帖
旧 04-03-28, 01:20 第 3 帖
Hauser
 
Hauser 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: 梦乡
  帖子: 1,669
  精华: 4
 

干吗不用gzip,bzip2,和tar呢?
Unix下的这些工具还是很好用的!







__________________
Athlon XP 2600+; 512M RAM;
nVidia FX5700LE; Hitachi 120Gb
2.6.8.1-nitro6+FBSplash; XOrg+KDE3.3.0; Reiser4;
昔我往矣,杨柳依依。今我来思,雨雪霏霏。
行道迟迟,载渴载饥。我心伤悲,莫知我哀
  Hauser 当前离线   回复时引用此帖
旧 04-03-28, 02:22 第 4 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

我下了一个unrar,也是解压缩.rar文件的,挺好使的~~~
  KornLee 当前离线   回复时引用此帖
旧 04-03-28, 09:35 第 5 帖
waker
 
waker 的头像
 
 
注册会员  
  注册日期: Nov 2002
  帖子: 173
  精华: 0
 

没看明白, unrar 可以自动处理volumes吧?







__________________
LFS ID 9699
学习笔记 http://waker.hkjzone.com
  waker 当前离线   回复时引用此帖
旧 04-03-28, 10:40 第 6 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 waker 发表
没看明白, unrar 可以自动处理volumes吧?
你指的是: ?
引用:
home/javalee:unrar|grep volume
v Create volumes with size autodetection or list all volumes
vp Pause before each volume
UNRAR 3.10 freeware Copyright (c) 1993-2002 Eugene Roshal

此帖于 04-03-28 10:42 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 04-03-28, 17:37 第 7 帖
waker
 
waker 的头像
 
 
注册会员  
  注册日期: Nov 2002
  帖子: 173
  精华: 0
 

没看明白楼主的意思,他好象是要处理分巻,unrar好像是一般情况下不用手工处理的
  waker 当前离线   回复时引用此帖
旧 04-03-28, 20:08 第 8 帖
hellord
 
hellord 的头像
 
 
注册会员  
  注册日期: Jan 2004
  我的住址: .: 无间地狱 :.
  帖子: 73
  精华: 0
 

楼主玩的是一个MovieZ ftp server..大多数的dvdrip放出来的都是rar分卷压缩的。
楼主是想把这些压缩包自动解开并删除,只留下那些*.avi
我也玩过,这里有一个粗浅的脚本。仅供参考。
代码:
#!/bin/sh mv /ftproot/glftpd/site/admin/logs/today.log /ftproot/glftpd/site/admin/logs/yesterday.log mv /ftproot/glftpd/site/admin/logs/today.error /ftproot/glftpd/site/admin/logs/yesterday.error find /ftproot/glftpd/site/public/ -name "*part01.rar" -or -name "*.r01"|awk ' BEGIN {FS="/";}; {printf("cd \"");} {for (i=1;i<NF;i++) printf("%s/",$i); } {printf("\"");} {printf("\npwd\n/ftproot/glftpd/bin/unrar e -o- \"%s\" && rm -rf *.bad *.sfv && ",$NF);} $NF~/.r01/ {printf("rm -rf \"%s\".r??",substr($NF,0,length($NF)-4));} $NF~/.part01.rar/ {printf("rm -rf \"%s\".part*.r??",substr($NF,0,length($NF)-11));} $(NF-1)~/[Cc][Dd][0-9]/{printf("&&(mv *.avi *.mpg *.mpeg *.vob *.img *.bin *.cue *.iso ../;rm -rf ../%s;)",$(NF-1));}og {printf("|| (touch解压失败_请检查文件.bad; echo $PWD 解压失败 >> /ftproot/glftpd/site/admin/logs/today.error)");} {printf("\n");} '|sh > /ftproot/glftpd/site/admin/logs/today.log
  hellord 当前离线   回复时引用此帖
旧 04-03-29, 15:16 第 9 帖
zBS
 
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 46
  精华: 1
 

谢谢楼上的朋友给的脚本
但是我只要解压缩我的unrar目录就行了
现在遇到的问题是
里面的文件夹的文件都不是统一标准
给大家看一下目录结构
这是个多cd的
代码:
[root@ftp Drunken.Monkey.2002.DVDRip.DivX.AC3-KT]# ls CD1 CD2 @done Drunken.Monkey.2002.DVDRip.DivX.AC3-KT.nfo imdb.nfo Sample Sub @太平洋深海
1CD的
代码:
[root@ftp The.Campaign.2003.DVDRip.XviD-WRD]# ls [M.C] - ( 698M 49F - COMPLETE ) - [CmFtP] wrd-tc.r04 wrd-tc.r12 wrd-tc.r20 wrd-tc.r28 wrd-tc.r36 wrd-tc.r44 Sample wrd-tc.r05 wrd-tc.r13 wrd-tc.r21 wrd-tc.r29 wrd-tc.r37 wrd-tc.r45 Subs wrd-tc.r06 wrd-tc.r14 wrd-tc.r22 wrd-tc.r30 wrd-tc.r38 wrd-tc.r46 wrd-tc.nfo wrd-tc.r07 wrd-tc.r15 wrd-tc.r23 wrd-tc.r31 wrd-tc.r39 wrd-tc.r47 wrd-tc.r00 wrd-tc.r08 wrd-tc.r16 wrd-tc.r24 wrd-tc.r32 wrd-tc.r40 wrd-tc.rar wrd-tc.r01 wrd-tc.r09 wrd-tc.r17 wrd-tc.r25 wrd-tc.r33 wrd-tc.r41 wrd-tc.sfv wrd-tc.r02 wrd-tc.r10 wrd-tc.r18 wrd-tc.r26 wrd-tc.r34 wrd-tc.r42 wrd-tc.r03 wrd-tc.r11 wrd-tc.r19 wrd-tc.r27 wrd-tc.r35 wrd-tc.r43
需要解压缩到各自的目录下,现在解压缩好多没有字幕原因是解压缩后直接把字幕文件给del了,因为字幕文件释放出来也是rar的。所以需要进行第2次解压缩然后在删除。我已经想不到办法了

另外 还有个问题 请问哪位仁兄知道samba共享可以支持多语言显示
同时能显示繁体和简体就行了。新在只要有繁体的目录就全部是乱码 头痛s了
N多这样的目录 一个个去改非累s不可 :(
  zBS 当前离线   回复时引用此帖
旧 04-03-30, 20:48 第 10 帖
zBS
 
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 46
  精华: 1
 

我刚刚反复的尝试了一些办法,现在基本解决了问题 现在请大虾们帮偶解决下一个小问题,把这2个脚本合并成一个。

job内容
代码:
#!/bin/bash cd /mcmftp/glftpd/site/XviD/MoviE/unrar ls -l|grep "^d"|awk '{print"cd ""\""$NF"\"""&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar"}'|sh
eavi的内容
代码:
#!/bin/bash #[M.C] FtP ServeR #Extract Avi Movie Files #eavi by zBS@[M.C]Studio rar x -y *.rar;rar x -y *.RAR;rar x -y *01.rar;rar x -y *01.RAR;\ rm -f \[* *.sfv *.r??;rar x -r -y *.rar;rar x -r -y *01.rar;\ find ./ \( -mindepth 2 -name '*.[aijs][vdpsr][ixbt]' -exec mv {} ./ \; \) ls -l|grep "^d"|awk '{print $NF}'|xargs rm -fr;\ chown -R mysql.users $PWD;\ mv $PWD /mcmftp/glftpd/site/XviD/MoviE/over/
先谢谢了 呵呵。。。
  zBS 当前离线   回复时引用此帖
旧 04-03-30, 20:52 第 11 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 zBS 发表
我刚刚反复的尝试了一些办法,现在基本解决了问题 现在请大虾们帮偶解决下一个小问题,把这2个脚本合并成一个。

job内容
代码:
#!/bin/bash cd /mcmftp/glftpd/site/XviD/MoviE/unrar ls -l|grep "^d"|awk '{print"cd ""\""$NF"\"""&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar"}'|sh
eavi的内容
代码:
#!/bin/bash #[M.C] FtP ServeR #Extract Avi Movie Files #eavi by zBS@[M.C]Studio rar x -y *.rar;rar x -y *.RAR;rar x -y *01.rar;rar x -y *01.RAR;\ rm -f \[* *.sfv *.r??;rar x -r -y *.rar;rar x -r -y *01.rar;\ find ./ \( -mindepth 2 -name '*.[aijs][vdpsr][ixbt]' -exec mv {} ./ \; \) ls -l|grep "^d"|awk '{print $NF}'|xargs rm -fr;\ chown -R mysql.users $PWD;\ mv $PWD /mcmftp/glftpd/site/XviD/MoviE/over/
先谢谢了 呵呵。。。
典型的脚本应用,给个精华
  KornLee 当前离线   回复时引用此帖
旧 04-03-30, 21:29 第 12 帖
zBS
 
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 46
  精华: 1
 

谢谢老大给个精华噢,
能帮忙合并一下么,:o
偶实在太菜了,
  zBS 当前离线   回复时引用此帖
旧 04-03-31, 07:01 第 13 帖
yongjian
 
yongjian 的头像
 
 
★版☆主★  
  注册日期: May 2003
  我的住址: Linux
  帖子: 2,572
  精华: 9
 

把eavi 作成function放到第一个scirpt里.







__________________
15" C2D MBP.
有简单的,不用复杂的!看到复杂的,尽量简单化!
Unix/Linux Philosophy: Be small! Be concentrated! One program does one thing and do it perfectly!
∞ years - 宇宙中最后的物质 Proton heat death. 之后,宇宙将以纯能量的形式永远存在。。。一切皆空
  yongjian 当前离线   回复时引用此帖
旧 04-03-31, 13:04 第 14 帖
zBS
 
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 46
  精华: 1
 

麻烦楼上的帮偶改一下贴出来好么
偶不知道怎么改了 :(
我只看过几个shell的教程而已,懂的不多。
这里要感谢javalee 那个
代码:
find /dir \( -type d -exec chmod 644 {} \; -a -type f -exec chmod {} \; \)
给我指了路

此帖于 04-03-31 13:06 被 zBS 编辑.
  zBS 当前离线   回复时引用此帖
旧 04-03-31, 13:13 第 15 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 zBS 发表
麻烦楼上的帮偶改一下贴出来好么
偶不知道怎么改了 :(
我只看过几个shell的教程而已,懂的不多。
这里要感谢javalee 那个
代码:
find /dir \( -type d -exec chmod 644 {} \; -a -type f -exec chmod {} \; \)
给我指了路
像yongjian兄说言,把你的eavi以一个函数的形式放到你的job里. 试试看
#!/bin/bash
evai () {
...
}
cd /mcmftp/glftpd/site/XviD/MoviE/unrar
ls -l|grep "^d"|awk '{print"cd ""\""$NF"\"""&&eavi;cd /mcmftp/glftpd/site/XviD/MoviE/unrar"}'|sh
[/code]
  KornLee 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 12:30


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org