Eu tenho que criar um arquivo com o comando gzip (não tar - é necessário) e o arquivo deve conter arquivos de outro diretório - por exemplo, / etc. Eu tentei usar o comando
gzip myetc.gz /etc
Mas não deu certo.
Eu tenho que criar um arquivo com o comando gzip (não tar - é necessário) e o arquivo deve conter arquivos de outro diretório - por exemplo, / etc. Eu tentei usar o comando
gzip myetc.gz /etc
Mas não deu certo.
Respostas:
O Gzip funciona apenas com um único arquivo ou um fluxo de dados canalizado para o gzip. Então, primeiro você precisa gerar um arquivo, como o tar, e depois pode compactá-lo. A outra opção é compactar todos os arquivos individualmente e tar em um arquivo.
Ambas as soluções são estúpidas e não devem ser usadas. Você deve usar o tar com a opção de compactação incorporada e fazer tudo em um comando.
.tar.gz
...
cat filename | grep blah
é estúpido. Também é muito abaixo do ideal, porque usaria um grande espaço intermediário. Eu não sei se eu chamaria isso de estúpido tanto quanto injustificado, subótimo e, geralmente, meio feio. Bem, trabalhos estúpidos também.
fork()
.
gzip
trabalha com arquivos, não diretórios. Portanto, para criar um arquivo morto de um diretório que você precisa usar tar
(o que criará um único tarball de vários arquivos):
tar cvf myetc.tar /etc
ou, para um arquivo compactado com gzip:
tar cvzf myetc.tar.gz /etc
cd / ; tar cf - ./etc | gzip -c - > myetc.tar.gz
(se você está se perguntando por que eu tar "./etc" em vez de "/ etc", é porque nesses sistemas mais antigos, ao usar o tar xvf, ele irá para / etc e o substituirá ... [ou você terá que usar "pax" nesse caso]). Comando inverso, isto é, para extrair esse arquivo sob "/ algures": cd /somewhere ; gzip -dc < /the/location/of/myetc.tar.gz | tar xvf -
Se você realmente não tem tar disponível, pode usar o gzip para criar um backup de um diretório usando a opção (-r - recursivamente), mas talvez não seja exatamente o que você espera ...
Primeiro, você precisará copiar seu diretório para outro nome, se desejar manter o diretório original intocável.
#cp -a directory my_gzip_alone_backup
Segundo, você compactará todos os arquivos no diretório recursivamente (-r).
#gzip -r my_gzip_alone_backup
Agora vamos dar uma olhada dentro do my-gzip-alone-backup. Você não terá um único arquivo myfile.gz conforme o esperado, mas muitos arquivos compactados em gzip recursivamente. Mas não é bom fazer isso com etc por causa dos links simbólicos ...
Para descompactar o diretório, a mesma lógica pode ser aplicada com o gunzip.
Outra maneira é converter o diretório em um único arquivo, se você não tem tar para fazer isso, mas possui o dd util, como demonstrado neste post: /ubuntu/626634/converting-a -arquivo para o diretório
gzip
não ézip
. São ferramentas diferentes que funcionam de maneira diferente.