sexta-feira, 2 de dezembro de 2011

Compactar e descompactar no console do Linux

Fala gente tudo bem? Estou meio sem tempo por conta do fim da facul e de umas mudanças em minha vida profissional. Mas hoje vou falar sobre algo que havia prometido... COMO COMPACTAR arquivos no console.


Apenas listar o conteúdo

  tar -tvf wordpress-3.2.1-pt_BR.tar.gz

Descompactando tar.bz2

tar jxvf pacote.tar.bz2
Tem uma variação legal que é inciar o local onde você quer descompactar (você tem que ter permissões de escrita no diretório de destino)
tar jxvf pacote.tar.bz2 -C $HOME/tmp
tar jxvfC pacote.tar.bz2  $HOME/tmp


Extraindo apenas um arquivo

tar -xzvf wordpress-3.2.1-pt_BR.tar.gz wordpress/wp-admin/media-new.php


descompactando e descartando a pasta pai

tar jxvf pacote.tar.bz2 --strip 1
veja também: http://ur1.ca/0253w from stack overflow


criando um pacote tar.bz2

tar cjvf nome.tar.bz2 ./pasta


listando o conteúdo de um pacote tar

tar -tf conf-sys.21-08-2009-113639.tar.bz2  | awk '{print $6}'


Empacotar arquivos locais em um host remoto

tar -czf - * | ssh example.com "cat > files.tar.gz"
 
tar cjvf - ./instal-dbdesigner | ssh srvescola 'cat >  install-DBdesigner.tar.bz2'
criar pacote tar.gztar czvf nomedopacote.tar.gz /pasta
extrair pacote tar.gztar zxvf pacote.tar.gz [ -C /caminho/opcional/para/extracao/ ]
criar pacote tar.bz2tar cjvf nomedopacote.tar.bz /pasta
extrair pacote tar.bz2tar jxvf pacote.tar.bz2 -C /pasta/

Compactando tudo menos pastas

tar -cvzf arch.tgz $(find /path/dir -not -type d)
 
tar -cvf /path/dir.tar /path/dir* --exclude "/path/dir/name" --exclude "/path/dir/opt"
 
# entrei como root no diretório /var/chache/apt/archives
tar -cjvf pacotes.tar.bz2 $(ls *.deb)


como construir um pacote tar do stdin?

Qualquer comando que produza uma lista de arquivos pode ser usado
tar cvzf archive.tgz `ls -1 *`

criando pacotes tar com 7z

tar cf - /path/to/data | 7z a -si archivename.tar.7z
Using 7z to create archives is OK, but when you use tar, you preserve all file-specific information such as ownership, perms, etc. If that's important to you, this is a better way to do it.


para instalar o 7zip no ubuntu faça

sudo apt-get install p7zip 7zip-full p7zip-rar lzma lzma-dev
 
# demais descompactadores
# descompactadores
apt-get install -y unace rar unrar zip unzip p7zip-full p7zip-rar sharutils uudeview mpack lha arj cabextract file-roller

Referências

Um comentário: