首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rar提取拆分存档文件的Bash脚本

使用rar提取拆分存档文件的Bash脚本
EN

Stack Overflow用户
提问于 2010-08-29 18:30:37
回答 1查看 2.1K关注 0票数 1

我想做的是:

我在文件夹名档案上有上千个分离的rar档案。文件名0001.part1.rar 0002.part2.rar 0003.part3.rar等。

0001.part1.rar

  • create读取,基于上面文件的前缀的目录,例如0001
  1. 移动上面创建的目录上具有相同前缀的所有文件。directory
  2. Rename
  3. 提取该目录中的文件,
  4. 根据文本文件中的名称列表删除该
  5. 中的所有rar文件。重命名的文件具有不同的arguments.
  6. Move,重命名的文件(从步骤6起)到一个名为Done的新目录。
  7. 继续到文件0002.part1.rar,然后执行步骤2-8,等等。

另外,我将如何将它与cron结合起来?应该只运行一次..。

提取第一组rar文件后,更改为:

代码语言:javascript
复制
file.001 
file.002 
file.003 

等等,我也需要提取。

对步骤6的澄清:

在提取第二组rar后(file.001,file.002等)我想根据文本文件中的名称列表重命名它。

例如,文本文件中的文件列表:

代码语言:javascript
复制
0001 - GB Funds.DAT
0002 - US Bonds.DAT
0003 - SG Securities.DAT
0004 - LU Credits.DAT

对步骤7的澄清:

代码语言:javascript
复制
After renaming the file I want to move it on a new folder called "Done"

对步骤9的澄清:

代码语言:javascript
复制
Go back to the main folder with all the other archives 
and continue extracting the next set of archives and 
do the same steps from 1 to 8.
EN

回答 1

Stack Overflow用户

发布于 2010-08-29 18:49:02

您可以编写一个shell脚本,其中包括以下内容:

代码语言:javascript
复制
# foo.sh
set -e
set -u

for i in `find -max-depth 1 -type f -name '*.rar' | sed 's/\.part*\.rar$//' | sort -u`; do
    mkdir $i
    mv $i.part*rar $i
    cd $i
    unrar x $i.part1.rar
    DST=`grep $i ../rename.txt | sed 's/^[0-9]\+ - //'`
    mv $i "$DST"
    # and so on, rar it together again, move it done directory etc.
    cd ..
done

然后通过以下方式运行:

代码语言:javascript
复制
bash foo.sh

你必须澄清6/8/9。

我不知道你为什么要通过cron运行它,因为你只想运行它一次。at是为运行一次性作业而设计的,或者在屏幕会话中运行它.

我建议您在开始整个工作之前,对集合中的1-3个文件和最终得到的脚本进行一些测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3596043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档