Como extrair um único arquivo do tbz

4

Eu tenho o seguinte diretório arquivado:

itunes20140618.tbz

Eu quero extrair um arquivo único chamado:

itunes20140618/video

Como eu faria isso?

Até agora, estou fazendo

$ bzip2 -d /tmp/itunes20140618.tbz 

Mas parece criar um diretório tar de tudo. Como eu iria extrair apenas o único arquivo de vídeo?

Atualmente, se eu extrair um arquivo via tar, ele demora cerca de 1 minuto e depois "trava" por mais 20 minutos enquanto ele termina de ler o arquivo tar. Alguma idéia de como melhorar isso?

    
por David542 22.06.2014 / 22:12

2 respostas

7

tar -xvjf itunes20140618.tbz itunes20140618/video

Isso deve ser feito para este caso, mas se precisar de mais ajuda,

info tar

To extract specific archive members, give their exact member names as arguments, as printed by --list (-t). If you had mistakenly deleted one of the files you had placed in the archive collection.tar earlier (say, blues), you can extract it from the archive without changing the archive's structure. Its contents will be identical to the original file blues that you deleted.

First, make sure you are in the practice directory, and list the files in the directory. Now, delete the file, blues, and list the files in the directory again.

You can now extract the member blues from the archive file 'collection.tar' like this:

 $ tar --extract --file=collection.tar blues

If you list the files in the directory again, you will see that the file blues has been restored, with its original permissions, data modification times, and owner. (These parameters will be identical to those which the file had when you originally placed it in the archive; any changes you may have made before deleting the file from the file system, however, will _not_ have been made to the archive member.) The archive file, collection.tar, is the same as it was before you extracted blues. You can confirm this by running tar with --list (-t).

    
por 22.06.2014 / 23:12
1

Um arquivo como .zip , .rar ou .7z consiste em muitos arquivos agrupados e compactados. Um arquivo .tar consiste em muitos arquivos agrupados, mas o formato tar não inclui nenhuma compactação. Um arquivo .gz , .bz2 ou .xz é um único arquivo compactado. Um .tar.gz , .tar.bz2 , etc. é um arquivo compactado; .tbz é um sufixo que é usado ocasionalmente em vez de .tar.bz2 , da mesma forma como o .tgz às vezes é usado em vez de .tar.gz .

bzip2 -d /tmp/itunes20140618.tbz descompacta o arquivo. Você ficou com o arquivo tar não compactado. bzip2 não cria um tar: ele descompacta o que é dado a ele, e como ele recebe um tar compactado, a saída é um tar descompactado. Você pode descompactar o arquivo resultante com tar -xf /tmp/itunes20140618.tar . Para extrair apenas um arquivo, isso é tar -xf /tmp/itunes20140618.tar itunes20140618/video .

Versões razoavelmente recentes de tar no Linux, FreeBSD, MINIX3 e OSX detectam automaticamente arquivos compactados, então você pode chamar o tar em primeiro lugar sem se preocupar com a compactação usada no arquivo:

tar xf itunes20140618.tbz itunes20140618/video

Versões mais antigas do tar, assim como muitos sistemas atuais, como o OpenBSD, Solaris e Linux com BusyBox, podem pelo menos chamar bzip2 , mesmo que você tenha que avisar explicitamente com a opção -j . / p>

tar -xjf itunes20140618.tbz itunes20140618/video
    
por 23.06.2014 / 02:29

Tags