Comprimir e remover o diretório original com armazenamento limitado

4

No meu disco rígido externo de 3 TB, eu tenho um diretório de 2,7 TB contendo arquivos relativamente pequenos. Eu gostaria de comprimir este diretório de 2,7 TB e removê-lo para manter apenas a versão compactada. O problema é que eu não tenho armazenamento suficiente para primeiro zip e, em seguida, rm o diretório não zipado.

Existe uma maneira de contornar este problema ou eu necessariamente tenho que adquirir mais armazenamento para a manipulação?

    
por Remi.b 25.04.2016 / 23:09

3 respostas

1

Se o maior arquivo no diretório for menor que 300 GB (a quantidade de espaço livre), a opção mais fácil é compactar arquivos individualmente, em vez de criar um arquivo; algo como

find directory -type f \! -name '*.xz' -print 0 | xargs -0 xz -9

compactará todos os arquivos não compactados em directory usando xz no nível de compactação 9. Isso substituirá os arquivos, um de cada vez, pela versão compactada correspondente, adicionando uma extensão .xz (portanto, foo.txt se torna foo.txt.xz ).

Na verdade, isso pode funcionar mesmo se o arquivo maior for maior que o espaço livre disponível, contanto que você tenha arquivos suficientes menores que o espaço livre disponível: comece compactando os arquivos menores, que liberarão progressivamente mais espaço até, (até que você) tenha espaço livre suficiente para lidar com o maior arquivo.

    
por 25.04.2016 / 23:17
0

Eu normalmente nunca faço arquivos zip, então não sou especialista, mas parece que zip por padrão apenas adiciona arquivos a um arquivo, então algo como ( não testado - contém um rm command = potential dangerous - Teste você mesmo antes de arriscar seus dados): %código% no diretório, provavelmente poderia fazê-lo.

    
por 26.04.2016 / 00:49
0

Você pode tentar o argumento --remove-files para tar. Digamos que você quer comprimir tudo no diretório FOO, você iria: tar -czf FooCompressed.tar.gz --remove-files FOO

Argumentos explicados:

  • c: criar TAR
  • z: comprima usando o GZIP, você pode alternar para -j para BZIP2 ou -J para LZMA (xz)
  • f: saída para arquivo em vez de STDOUT
  • remove-files: auto explicativo
por 26.04.2016 / 01:58