好的,我有一个目录,其中包含大量包含 RAR 文件的文件夹,我想使用脚本来递归解压。
我的脚本似乎可以工作(将结果文件提取到运行它的目录/文件夹中),但是一旦完成文件提取,它就会消失,并移动到下一个文件,该文件也会消失。
无论如何,未提取的文件总是消失 - 我不知道为什么。无论我是以用户 michaelh 的身份运行脚本,还是使用 sudo 执行脚本,都没有关系。
我认为这是某个地方的权限错误,但如果我知道在哪里,那就太糟糕了。不过,也可能是其他原因 - 这就是我在这里提问的原因。
脚本
for f in `find /media/michaelh/grill-g/video/to_sort -wholename *.rar`
do
rar e -inul $f
done
目录结构和权限的示例
michaelh@grill:/media/michaelh/grill-g/video/to_sort$ ls -als
total 421624
8 drwxrwxrwx 132 michaelh michaelh 8192 Jul 29 10:56 .
4 drwxrwxrwx 4 michaelh michaelh 4096 Jul 19 18:42 ..
4 drwxrwxrwx 2 michaelh michaelh 4096 Jul 27 03:47 foldername
michaelh@grill:/media/michaelh/grill-g/video/to_sort/foldername$ ls -als
total 243556
4 drwxrwxrwx 3 michaelh michaelh 4096 Jul 26 01:22 .
8 drwxrwxrwx 132 michaelh michaelh 8192 Jul 29 10:58 ..
4 -rw-rw-r-- 1 michaelh michaelh 1030 Jul 26 01:22 foldername.nfo
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:22 foldername.r00
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:45 foldername.r01
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:38 foldername.r02
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 05:29 foldername.r03
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:33 foldername.r04
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 05:23 foldername.r05
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 04:50 foldername.r06
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:28 foldername.r07
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:29 foldername.r08
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 05:17 foldername.r09
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:28 foldername.r10
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:29 foldername.r11
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 01:26 foldername.r12
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 05:01 foldername.r13
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 05:12 foldername.r14
8780 -rw-rw-r-- 1 michaelh michaelh 8970889 Jul 26 01:13 foldername.r15
14672 -rw-rw-r-- 1 michaelh michaelh 15000000 Jul 26 05:28 foldername.rar
4 -rw-rw-r-- 1 michaelh michaelh 969 Jul 25 22:02 foldername.sfv
答案1
通过改变传递的参数来解决,经过进一步研究后发现 unrar 因导致多部分文件出现 CRC 错误而臭名昭著。
for f in `find /media/michaelh/grill-g/video/to_sort -wholename *.rar`
do
rar x -kb -inul $f
done
用 x -kb 替换 e 解决了 CRC 错误,并且在完成后不会删除文件。