Copie vários arquivos e envie cada um para uma subpasta específica

1

Eu tenho uma pasta contendo capas de CD em .jpg e outra pasta contendo subpastas, cada uma com o CD correspondente. Quero enviar cada capa de CD para sua subpasta correspondente. Eles já estão em ordem alfabética. Como eu posso fazer isso?

    
por Rodrigo 26.02.2018 / 01:43

1 resposta

2

Este é o tipo de coisa que é fácil com um shell Unix. Você poderia fazer isso com o bash também, mas aqui está como você pode fazer isso com a versão demo gratuita do meu Hamilton C shell . (Sim, eu sou o autor.)

Suponha que você esteja no diretório que contém os jpgs e que o diretório contendo CDs seja o caminho para o diretório com os subdiretórios com os CDs:

set CDs = ''ld -1 directory-containing-CDs''  # Get list of CD directories
set covers = *.jpg  # Get the list of jpgs
for i = 0 to $#covers - 1 do
   mv $covers[i] directory-containing-CDs\$CDs[i]  # Move the jpgs one-at-a-time.
end

ld é um alias para executar ls , retornando apenas diretórios. A opção -1 significa gravar cada diretório em uma linha separada. As duplas backquotes transformam cada linha em uma palavra separada (se algum nome de diretório contiver espaços, não queremos dividi-los em palavras separadas).

Se nada disso estiver claro, basta perguntar.

    
por 26.02.2018 / 03:56