unrar todos os arquivos rar em um diretório com linux

2

Eu estou tentando extrair muitos arquivos rar de uma só vez, mas sem sucesso. Estou tentando na ordem:

>ls *.rar|xargs unrar x
>ls *.rar|xargs unrar e
>unrar e -r *.rar
>for f in *.rar;do unrar e “$f”;done

ninguém trabalha. Rar responde todas as vezes dizendo que não há arquivo para extrair.

>Extracting from damned_file.rar

 No files to extract

Se eu tentar extrair o arquivo um por um, tudo funcionará bem

>unrar e damned_file.rar
 extracting damned_file.rar                        
 extracting dmaned_file.txt                            OK
 All OK
>

Minha versão do rar é

UNRAR 4.10 freeware      Copyright (c) 1993-2012 Alexander Roshal

O que estou fazendo errado?

PS: o comando

find . -name "*.rar" -exec unrar e {} \;

funciona bem, mas a questão permanece a mesma. Por que os comandos anteriores falham?

    
por emanuele 10.04.2014 / 16:54

2 respostas

1

xargs coloca argumentos por trás do comando fornecido até o comprimento máximo do comando para o seu shell atual, então o comando seria:

xargs unrar e damned_file.rar another_damned_file.rar yadf.rar

No entanto, unrar usa apenas um único arquivo rar como argumento. O comando find que você especificou executa unrar para cada arquivo que encontrar, então o comando é unrar e damned_file.rar , unrar e another_damned_file.rar .

    
por 10.04.2014 / 18:31
1

Aqui está o meu goto para loop:

for file in *.rar; do unrar e $file; done
    
por 17.08.2017 / 23:44