find . -name '*.rar' -execdir unrar e -o- {} /home/hilarie/Videos/season5 \;
是我用来提取包含多个文件夹的目录的命令,其中包含多部分 rar 文件。
当我尝试将任何非命令替换/home/hilarie/Videos/season5
为命令时,例如,~/Videos/season5
或者如果文件夹/home/hilarie/Videos/season5
尚未创建,它会出错并显示此消息
packed data checksum error in volume
卷本身没有问题,只是尝试提取的位置有问题。这是错误吗,还是只是我不擅长从 superuser.com 复制粘贴?
输出
echo $SHELL $0; type -a find unrar
是
/bin/bash /bin/bash
find is /usr/bin/find
unrar is /usr/bin/unrar
find 的输出。-name '*.rar' -execdir unrar -o- {} /home/hilarie/Videos/season5 \;
除了 e 标志之外,其他都相同
Cannot open /home/hilarie/Videos/season5.rar
No such file or directory
答案1
是的,find 和 unrar 之间似乎存在错误。我的系统上的一个快速解决方法是将其包装unrar
在bash -c
命令中。
find . -name "*.rar" -execdir bash -c 'unrar e -o- "{}" /home/hilarie/Videos/season5' \;
如果 unrar 命令中包含输出目录,则该目录必须存在。像这样的一行代码就可以了。
find . -name "*.rar" -execdir bash -c 'mkdir -p /home/hilarie/Videos/season5 && unrar e -o- "{}" /home/hilarie/Videos/season5' \;