recuperar o conteúdo de várias subpastas e movê-las para uma única pasta

2

Eu baixei mais de 7000 ebooks do Project Gutenburg, mas tenho um problema. Cada livro foi colocado em seu próprio arquivo zip, e cada arquivo zip recebeu sua própria pasta. Meu problema é que eu não quero ter que passar por cada arquivo e descompactá-los e colocar os ebooks em um só lugar manualmente. Se eu conseguir colocar os arquivos zip em um só lugar, será fácil descompactar todos eles com um único comando.

Então, como faço para colocar meus arquivos em uma pasta, em vez de em suas próprias subpastas?

    
por jabell 23.08.2011 / 03:22

3 respostas

4

Supondo que todos os diretórios que contêm os arquivos zip têm um pai comum, você pode usar find para localizar todos os arquivos zip e depois executar a descompactação nesses arquivos, especificando o diretório para extrair os arquivos:

find /path/under/zip/folders -name "*.zip" -exec unzip {} -d /target/path \;
    
por Stacey Richards 23.08.2011 / 04:44
0

A abordagem dos curingas pode ficar confusa se houver mais de um nível de pastas aninhadas ...

Geralmente, realizo tarefas semelhantes (e a maioria das outras operações de arquivo) usando o Midnight Commander. Instale-o usando

sudo apt-get install mc

Em seguida, basta iniciá-lo digitando 'mc', navegue até a pasta em que seus e-books estão, pressione Esc e depois Ctrl- ?, insira os critérios de pesquisa, na janela de resultados, clique em [Panelize]. Agora você pode selecionar todos os seus zips pressionando * e copiá-los / movê-los para o diretório em outro painel pressionando F5 ou F6

    
por Sergey 23.08.2011 / 03:56
-1

Você tem experiência com curingas? você poderia fazer algo como

mv common_part_of_folder_name*/*.zip .

onde o símbolo do asterisco basicamente significa "qualquer coisa". Se você tem apenas o gutenberg em seu diretório, você pode simplesmente executar

mv ./*/*.zip .

para obter todos os arquivos zip em seu diretório atual. Se é muito mais complexo do que isso, um script Perl ou shell pode ser o caminho a ser seguido.

    
por Dmitri 23.08.2011 / 03:35