Faz loop e extrai arquivos que correspondem a um caminho

0

Atualmente, estou em um diretório com vários diretórios.

$ ls
the bad icons 100                 the games icons 100
the beach & camping icons 100          the halloween icons 100

Como posso extrair todos os pngs que correspondem ao caminho a seguir e enviá-los em um diretório?

/{iconPackFolderName}/png/colored/512x512/*.png
    
por Alex 28.09.2018 / 06:37

2 respostas

1

Você já tentou isso

mv /{iconPackFolderName}/png/colored/512x512/*.png {TargetDirectory}

Se você receber uma mensagem dizendo que há muitos arquivos e o comando for muito longo, tente isto

echo /{iconPackFolderName}/png/colored/512x512/*.png | xargs mv --target-directory {TargetDirectory}
    
por 28.09.2018 / 07:03
0

Como você já está no diretório, pode usar . com find:

find . -path "*/png/colored/512x512/*.png" -exec mv -t TARGETDIR {} +

Se você quiser primeiro examinar os arquivos encontrados, remova o -exec e o próximo (ou substitua-o por | less ), o resultado será a saída dos nomes de arquivo para stdout por padrão, como em:

find . -path "*/png/colored/512x512/*.png" | less

Você pode querer que a opção mv do -i, --interactive seja solicitada antes de sobrescrever, caso haja nomes de arquivos conflitantes.

    
por 29.09.2018 / 08:14