{"id":98,"date":"2017-06-28T10:12:29","date_gmt":"2017-06-28T13:12:29","guid":{"rendered":"http:\/\/xaxowareti.com.br\/?p=98"},"modified":"2017-06-28T11:06:04","modified_gmt":"2017-06-28T14:06:04","slug":"dividindo-arquivo-em-partes-menores-no-linux","status":"publish","type":"post","link":"https:\/\/xaxowareti.com.br\/?p=98","title":{"rendered":"Dividindo arquivo em partes menores no Linux."},"content":{"rendered":"<p>Eu queria fazer o backup de alguns arquivos no Gmail, mas depois de junt\u00e1-los num\u00a0<span class=\"skimlinks-unlinked\">tar.gz<\/span>, o arquivo ficou grande demais para mand\u00e1-lo por email. Resolvi o problema dividindo o arquivo em partes menores e mandando-as individualmente.<\/p>\n<p>Antes de mais nada, vamos juntar todos os arquivos em um tar. O ideal \u00e9 que voc\u00ea crie uma pasta antes, pois quando for descompactar, os arquivos n\u00e3o ser\u00e3o jogados no diret\u00f3rio em que voc\u00ea est\u00e1 trabalhando, mas sim dentro dessa mesma pasta.<br \/>\n<code>$ mkdir backup<\/code><\/p>\n<p>Agora copie todos os arquivos que voc\u00ea quer fazer o backup para essa pasta. Se quiser, pode criar novas pastas dentro dessa.<br \/>\n<code>$ cp arquivo1 arquivo2 arquivo3 ... backup<\/code><\/p>\n<p>Depois disso, criaremos o tar. Voc\u00ea pode simplesmente cri\u00e1-lo, ou tamb\u00e9m compact\u00e1-lo com o gzip ou o bzip2. Existem outras op\u00e7\u00f5es tamb\u00e9m, mas essas s\u00e3o as mais comuns. O bzip2 compacta melhor, mas \u00e9 um pouco mais lerdo.<br \/>\n<code>$ tar -cvf backup.tar backup # sem compacta\u00e7\u00e3o<br \/>\n$ tar -zcvf backup.tar.gz backup # gzip<br \/>\n$ tar -jcvf backup.tar.bz2 backup # bzip2<\/code><\/p>\n<p>Pode ser que voc\u00ea queira ver de que tamanho ficou o tar e ver se vai precisar dividi-lo ou n\u00e3o.<br \/>\n<code>$ ls -lh | grep backup<\/code><\/p>\n<p>Para dividi-lo, usaremos o split. No Archlinux ele vem no pacote coreutils, ent\u00e3o \u00e9 praticamente certeza que ele estar\u00e1 instalado. De maneira geral, ele ser\u00e1 utilizado da seguinte forma:<br \/>\n<code>$ split -b tamanho_individual arquivo_de_origem prefixo<\/code><\/p>\n<p>Assim ele dividir\u00e1 o arquivo_de_origem em arquivos de tamanho_individual (em bytes, ou voc\u00ea pode usar algum sufixo de tamanho) cada e com o nome prefixoaa, prefixoab, prefixoac\u2026 Eu usei algumas op\u00e7\u00f5es a mais, no fim ficou assim:<br \/>\n<code>split -a 1 -b 9MB -d --verbose backup.tar.gz backup.tar.gz.<\/code><\/p>\n<ul>\n<li>O -a 1 modifica os identificadores ap\u00f3s o prefixo, ent\u00e3o ao inv\u00e9s de\u00a0<span class=\"skimlinks-unlinked\">backup.tar.gz.aa<\/span>, eu terei\u00a0<span class=\"skimlinks-unlinked\">backup.tar.gz.a<\/span>.<\/li>\n<li>O -d usa n\u00fameros no lugar de letras depois do prefixo, ent\u00e3o no fim eu fiquei com\u00a0<span class=\"skimlinks-unlinked\">backup.tar.gz.0<\/span>, 1, 2, etc.(lembrando que se colocar 1 quando a contagem chegar em 9 ele para de fazer.)<\/li>\n<\/ul>\n<p>Esse passo\u00a0<b>n\u00e3o<\/b>\u00a0\u00e9 destrutivo. Em outras palavras, ele n\u00e3o apagar\u00e1 o arquivo original.<\/p>\n<p>Para juntar usaremos o cat. Voc\u00ea pode primeiro reconstituir o arquivo original e ent\u00e3o descompact\u00e1-lo, ou usar um pipe direto do cat para o tar. Vamos criar um novo diret\u00f3rio antes para evitar confus\u00f5es com nome de arquivos antes.<br \/>\n<code>$ mkdir tmp &amp;&amp; mv backup.tar.gz.* tmp &amp;&amp; cd tmp<br \/>\n$ cat backup.tar.gz.* &gt; backup.tar.gz #reconstitui o arquivo e<br \/>\n$ tar -xvzf backup.tar.gz # descompacta o arquivo. ou<br \/>\n$ cat backup.tar.gz.* | tar -xvz # usa o pipe<\/code><\/p>\n<p>S\u00f3 se lembre de na hora de descompactar usar as op\u00e7\u00f5es certas, -z para gzip, -j para bzip2 e nada para apenas tar. Perceba tamb\u00e9m que no primeiro caso usamos -xvzf porque descompactamos um arquivo, no segundo n\u00e3o usamos o -f porque o tar est\u00e1 lendo do stdin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eu queria fazer o backup de alguns arquivos no Gmail, mas depois de junt\u00e1-los num\u00a0tar.gz, o arquivo ficou grande demais para mand\u00e1-lo por email. Resolvi o problema dividindo o arquivo em partes menores e mandando-as individualmente. Antes de mais nada, vamos juntar todos os arquivos em um tar. O ideal \u00e9 que voc\u00ea crie uma [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-98","post","type-post","status-publish","format-standard","hentry","category-dicassolucoes"],"_links":{"self":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/98","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=98"}],"version-history":[{"count":2,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":100,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/98\/revisions\/100"}],"wp:attachment":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}