extrair alguns membros do arquivo tar e canalizar através da rede


9

edit: Eu quero adicional member01e member02e diretórioblah/

tarball_1.tar.gzcontém diretório test/com 20 arquivos. Eu quero extrair apenas membro test/member01e test/member02diretório blah/e copiá-los para outro "remote_host" usando ssh / scp.

Isso pode ser feito como uma linha? Eu considerei usando tar, paxou cpiomas eu acho que não sou muito hábil com estes utilitários ainda.

Respostas:


15
tar -xzOf file.tar.gz file_you_want_to_extract | ssh user@host 'cat > /path/to/destination_file'
  • -x : Extrair
  • -z : Através gzip
  • -f : Pegue um arquivo como entrada.
  • -O : Extrair para stdout

Ele file_you_want_to_extracté extraído da file.tar.gzsaída padrão, canalizada para dentro ssh, que é executada catno host remoto e grava seu padrão no remoto destination_file. Obviamente, você deve garantir permissão de gravação no arquivo de destino desejado no host remoto.


Eu não estava claro na minha postagem original :) Preciso extrair mais de um membro, além de um diretório.
Felipe Alvarez

deve ser tar -xz0f: depois fvem o nome do arquivo
Felipe Alvarez

1
A extração de vários membros ficará confusa se você desejar que eles sejam de uma linha, pois a extração de vários arquivos para o stdout não faz muito sentido. Você provavelmente precisará fazer tarcada um que deseja extrair e depois usá-lo scp -r member1 member2 blah user@host:/destination/folder/para copiá-los. Se você realmente deseja torná-lo em uma linha, pode concatenar todos esses comandos com &&. Uma opção mais prática é apenas criar um script que itere pelas opções da linha de comando e execute tarcada uma delas e, em seguida, scptodas elas no final.
Atanamir

ahhhhh, entendo. Portanto, não existe um método de uma linha "fácil". Obrigado :-)
Felipe Alvarez

2
Como alternativa, se "one-liner" é mais importante do que "quanto tempo leva", você pode canalizar todo o arquivo morto através do ssh e extrair os membros que deseja do outro lado "cat file.tar.gz | ssh user @ host ' tar zxvf arquivo1 arquivo2 dir1 '
Colin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.