Como compactar em massa diferentes subpastas?

Como compactar em massa diferentes subpastas?

Eu tenho uma pasta all_foldersque contém 5 pastas:

./all_folders
./all_folders/folder1
./all_folders/folder2
./all_folders/folder3
./all_folders/folder4
./all_folders/folder5

Posso compactar todas essas pastas usando um único comando de uma só vez? Quero estar no all_foldersdiretório e executar o comando para que pastas individuais neste diretório sejam compactadas.

A saída esperada é

quando eu faço

ls 

in all_folders, então eu deveria ter 10 diretórios. 5 não compactados e 5 compactados.

Responder1

cdem all_folders, então execute

for i in folder1 folder2 folder3 folder4 folder5; do tar czf $i.tar.gz $i; done

Responder2

Não está claro o que você está tentando realizar. Estou executando o caso de uso em que apenas subdiretórios devem ser compactados aqui.

Primeiro, vá para o diretório que contém a coleção de diretórios e depois:

find -maxdepth 1 -type d | {
    while read dir; do 
        if [ ! "x${dir#*/}" = "x." ]; then
            tar cJf ${dir#*/}.tar.xz ${dir#*/};
        fi;
    done
}

Isso funciona bem com zsh. Para testar as coisas, coloque um echoinfront de tar, para ver se o comando dá check-out, etc.

No entanto, fazer uma coleção de arquivos como esta geralmente não é desejável. Normalmente você deseja compactar toda a coleção, usar compactação transparente da unidade em que esses arquivos residem ou usar compactação de transporte ( X-DEFLATEcom HTTP, por exemplo).

Esteja ciente de que você não terminará com um "diretório compactado", mas com um "arquivo compactado". Essas coisas não são intercambiáveis, pois os arquivos são arquivos em si, enquanto os diretórios são merosinodedatagramas.

Responder3

tar -zcvf archive.tar.gz directory/ 

Isso dirá ao tar para c (criar) um arquivo a partir dos arquivos no diretório (tar é recursivo por padrão), compactá-lo usando o algoritmo z (gzip), armazenar a saída como um (arquivo) chamado archive.tar.gz e v (detalhadamente) listar todos os arquivos adicionados ao arquivo.

Para descompactar e descompactar o arquivo no diretório atual você usaria

tar -zxvf archive.tar.gz 

insira a descrição da imagem aqui

informação relacionada