No DOS existe o comando
xcopy /s *.mp3 ..\TEMP2
Como posso fazer isso no Ubuntu?
cp -r *.mp3 ../TEMP2
copiará recursivamente todos os arquivos mp3, infelizmente sem o caminho por causa do *.mp3
filtro.
cp -r *.* ../TEMP2
copiará o caminho, mas não poderá ficar limitado a arquivos mp3
Dei uma olhada no rsync, mas não entendi.
Responder1
O poder das ferramentas no Ubuntu é que você pode combiná-las. O próximo comando encontra todos os arquivos .mp3 no diretório atual e seus subdiretórios e os copia para a ../TEMP2/
pasta, preservando os caminhos:
find -iname '*.mp3' -exec install -D {} ../TEMP2/{} \;
find -iname '*.mp3'
- encontra todos os arquivos que terminam com.mp3
(sem distinção entre maiúsculas e minúsculas) e-exec
- executa um comando para cada partida:install -D {} ../TEMP2/{}
- copia o arquivo correspondente para../TEMP/
preservar o caminho. ({}
é substituído pelo caminho incluindo o nome do arquivo)
\;
- finaliza o-exec
comando
Se você deseja obter o progresso, adicione -ls
("lista") ao comando antes -exec
. Também pode ser colocado depois \;
, mas nesse caso o nome é mostrado após ser copiado. Exemplos:
find -iname '*.mp3' -ls -exec install -D {} ../TEMP2/{} \;
find -iname '*.mp3' -exec install -D {} ../TEMP2/{} \; -ls
Responder2
Existem várias opções, mas nenhuma é realmente simples, receio…
sincronizar novamente
rsync -r --include="*/" --include="*.mp3" --exclude="*" --prune-empty-dirs . ../TEMP2
Isso indica para excluir todos os arquivos ( exclude="*"
), mas procurar em todos os diretórios ( include="*/"
) e incluir todos os arquivos mp3 ( include="*.mp3"
). Se você não deseja copiar diretórios que não contenham arquivos mp3, a --prune-empty-dirs
opção também é necessária.
fecho eclair
zip -R archive.zip "*.mp3"
unzip -d ../TEMP2 archive.zip && rm archive.zip
O primeiro comando cria um arquivo com todos os arquivos mp3, o segundo descompacta o conteúdo no diretório de destino e exclui o arquivo se for bem-sucedido.
encontrar
find . -iname "*.mp3" -exec install -D {} ../TEMP2/{} ";"
Isso encontrará todos os arquivos mp3 e os copiará para o caminho correspondente no ../TEMP2
diretório, após criar primeiro a estrutura de diretório ( install -D
).
copie tudo e exclua o resto
Isso só faz sentido se você tiver apenas alguns arquivos que desejanãoquero copiar:
cp -r * ../TEMP2
find ../TEMP2 -type f \! -iname '*.mp3' -delete
Isso copia tudo e exclui todos os arquivos que não sejam arquivos mp3