Arquivo com colchetes no nome não extraído pelo tar

5

No Linux estou extraindo arquivos de um arquivo tar usando

tar -xC / -f /tarFile.tar someFolder/[HD] video1.mp4

Isso funciona sempre bem, mas não neste caso, onde o nome do arquivo contém colchetes. A resposta do alcatrão é

someFolder/[HD] video1.mp4: not found in archive

O arquivo é extraído bem se eu remover os colchetes.

Eu já tentei escapar de todos os caracteres com \ e o nome do arquivo ao redor com ' . Sem sorte.

Alguma dica? Obrigado

    
por apic 04.05.2018 / 14:13

2 respostas

7

O primeiro comando que você forneceu tentará extrair dois ou três arquivos:

someFolder/H
someFolder/D
video1.mp4

Se você colocar o nome do arquivo entre aspas simples ( ' ), o programa tar verá o [HD] e o processará como um curinga glob que significa " H ou D ". Por isso, tentará extrair dois arquivos:

someFolder/H video1.mp4
someFolder/D video1.mp4

Citando o nome de arquivo e usando o --no-wildcards flag irá suprimir essas tentativas de expansão:

tar -xC / -f /tarFile.tar 'someFolder/[HD] video1.mp4' --no-wildcards
    
por 04.05.2018 / 14:26
1

Substitua os colchetes pelos caracteres curinga (como ? ou * ), por exemplo,

tar -x -C/ -v -f tarFile.tar 'someFolder/?HD? video1.mp4'

ou:

tar -x -C. -v -f tarFile.tar 'someFolder/*video1.mp4'

Para confirmar o nome do arquivo, você pode listar o arquivo por:

tar -t -f tarFile.tar | grep mp4$
    
por 04.05.2018 / 15:16

Tags