Eu não sei a solução para o unrar
em si, mas se você puder executar vidir
e se você conseguir descompactar o conteúdo do arquivo como um diretório estruturado em plano, então é isso que você pode tentar convertê-lo em uma árvore de diretórios:
# cd to the directory
find . | sort | vidir -
Isso abrirá seu editor de texto. Use seus recursos para substituir cada \
por /
e salve o arquivo sem alterar seu caminho (é um arquivo temporário). vidir
moverá arquivos e diretórios para seus novos caminhos, criando a árvore de diretórios desejada.
Notas:
- Caracteres extravagantes em nomes de arquivos não são suportados,
vidir
espera entrada textual com novas linhas padrão como separadores de entrada (não funcionará comfind . -print0
ousort -z
). - Usei
sort
para garantir que cada linha que represente um diretório preceda seu conteúdo. É importante porquevidir
criará diretórios ausentes ao mover um objeto para seu novo caminho. Mover o diretório original mais tarde geraria um conflito de nomes resolvível com~
suffix, você não deseja isso. Você deseja mover o diretório antes de seu conteúdo, portanto,sort
. - Defina
$EDITOR
para quevidir
use o editor de texto de sua escolha (por exemplo,EDITOR=vi vidir
). -
Você pode tentar a abordagem experimental de minha outra resposta para substituir os caracteres automaticamente, sem jogando no editor de texto à mão. No seu caso, o comando será:
find . | sort | EDITOR='sed -i s|\|/|g' vidir -