Pagina inicial » como » Descompacte ou remova muitos arquivos ao mesmo tempo no Linux

    Descompacte ou remova muitos arquivos ao mesmo tempo no Linux

    Se você tem um diretório com dezenas de arquivos zipados ou raros, você pode executar um único comando para descompactá-los todos em uma única etapa, graças ao poder do shell bash.

    Para esta tarefa, usaremos a estrutura de comando do loop de bash. Substitua por um nome de variável e por um comando que produza uma lista ou uma lista explícita.

    por em
    Faz
    comando $;
    feito

    Você pode executá-lo em uma única linha com esta sintaxe:

    para in; do command $; done

    Então, se você quiser unrar uma lista de arquivos, você pode usar este comando. Você não precisa necessariamente das aspas, mas ajuda quando os nomes dos arquivos têm espaços ou algo parecido neles.

    para f em * .rar; do unrar e “$ f”;

    Se você quisesse usar o 7zip para extrair uma lista de arquivos:

    para f em * .001; do 7z e “$ f”;

    Ou se você quiser descompactar uma lista de arquivos:

    para f em * .zip; descompacte "$ f";

    Você poderia até encadear comandos juntos se quisesse. Por exemplo, se todos os seus arquivos zip continham arquivos .txt e você quisesse descompactá-los e então mover os arquivos descompactados para outro diretório:

    para f em * .zip; descompacte “$ f”; pronto; para f em * .txt; faça mv “$ f” / myfolder /;

    A concha bash é tão incrivelmente poderosa ... isso nem toca na energia, mas deve dar uma boa idéia do que é possível.