这是一个错误还是可以按预期运行?

这是一个错误还是可以按预期运行?
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 之间似乎存在错误。我的系统上的一个快速解决方法是将其包装unrarbash -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' \;

相关内容