Como mover alguns arquivos para seu diretório pai?

11

Eu quero puxar todos os mp3 que acidentalmente foram colocados em uma pasta flac, para sua pasta pai.

Não importa quão profundas sejam as pastas, só quero mover os arquivos correspondentes exatamente para um diretório.

Veja como eu seleciono meus arquivos:

find . -path "*/flac/*" -name '*.mp3'

Isso funciona na minha pasta de músicas, mas estou preso aqui. Todas as soluções que encontrei, movem os arquivos para o pai da pasta atual ou exigem alguma estrutura fixa.

    
por Marcel 21.12.2017 / 22:56

1 resposta

23

Tente:

find . -path "*/flac/*" -name '*.mp3' -execdir mv -t ../ {} +

Como funciona

  1. find .

    Inicie um comando find trabalhando no diretório atual.

  2. -path "*/flac/*"

    Selecione apenas arquivos com flac em seu caminho

  3. -name '*.mp3'

    Selecione apenas arquivos com extensão .mp3 .

  4. -execdir mv -t ../ {} +

    Para todos os arquivos encontrados, execute o comando mv do diretório em que o arquivo está e mova o arquivo para o diretório pai.

    Além de facilitar essa tarefa específica, a opção -execdir também é mais segura do que a tradicional -exec .

Simplificação

find . -path "*/flac/*.mp3" -execdir mv -t ../ {} +
    
por John1024 21.12.2017 / 23:00