Quero pegar uma pasta de 78 GB e armazená-la em um único arquivo (para fazer o upload em um serviço em nuvem), como se estivesse compactando em um arquivo, mas não quero nenhuma compactação (não tenho tanta CPU tempo disponível). Existe alguma maneira de conseguir isso, talvez um comando terminal que eu não conheça?
shell
files
compression
cjmaria
fonte
fonte
tar
comando no linux.tar -cf long.file.tar folder
lzop
é projetado para velocidade.Respostas:
Use
tar
:tar -cf my_big_folder.tar /my/big/folder
Restaure o arquivo morto com
tar -xf my_big_folder.tar -C /
-C mudará para o diretório raiz para restaurar seu arquivo, pois o arquivo criado acima contém caminhos absolutos.
EDIT : Devido ao tamanho relativamente grande do arquivo, é melhor enviá-lo [diretamente] para seu local final, usando SSH ou um ponto de montagem do recurso / pasta da nuvem. Por exemplo, como Cole Johnson sugere :
ou
EDIT : Como o Blacklight Shining também sugere , se você deseja evitar caminhos absolutos, pode mudar para o pai da grande pasta e a
tar
partir daí:ou
Reflexões pessoais
A inclusão de caminhos relativos ou absolutos é uma questão de preferência pessoal.
Há casos em que caminhos absolutos são óbvios, por exemplo, para uma restauração em uma situação de recuperação de desastre. Para projetos ou coleções locais, é comum arquivar uma árvore de diretórios a partir do pai da pasta desejada, para evitar sobrecarregar o diretório atual, caso o arquivo seja acidentalmente descompactado no local. Se o big_folder estiver em algum lugar profundo de uma hierarquia * NIX padrão , pode fazer algum sentido começar a arquivar a primeira pasta não padrão na qual o big_folder se desvia e sua árvore de diretórios a partir daí.
Finalmente - os pedantes aqui - os
tar
membros do arquivo são sempre relativos, pois a) eles podem ser restaurados em qualquer diretório eb)tar
remove a liderança/
ao criar um arquivo. Pessoalmente, costumo sempre usar -C ao descompactar um arquivo.fonte
tar -cf /network/mount/point/folder.tar /folder
, em vez de asfaltamento para o computador local e, em seguida, upload, se pudertar -cf $archive.tar -C $source_dir .
. Se a máquina de destino não tiver um diretório com o mesmo caminho que o diretório de origem, você precisará fazer isso. Apenas certifique-se de-C
entrar em um novo diretório ao extrair (mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir
); outra coisa o conteúdo do arquivo vai ser despejado em qualquer diretório acontecer de você estar em.Alternativa: cpio
Descompactando no diretório atual:
Ressalvas:
find /my/big/folder
vez decd
, o arquivo conterá caminhos completos e a extração tentará segui-los;fonte