Eu tenho todas as minhas músicas em uma pasta /media/kalenpw/MyBook/Music/ABunchOfOtherFoldersWithFilesInside
. Quero copiar todos os mp3s para /media/kalenpw/HDD/Music
então usei:
cp -R /media/kalenpw/MyBook/Music/*.mp3 /media/kalenpw/HDD/Music
no entanto, isso apenas copiou os mp3s na pasta de música raiz e não abriu nenhum dos subdiretórios do artista e copiou esses arquivos.
Eu estava com a impressão de -R
copiar recursivamente todos os arquivos. Como posso alcançar esse objetivo?
-iname
vez de-name
no caso de algum arquivo terminar.MP3
.Você mencionou especificamente os arquivos / diretório (s) a serem copiados como usando
*.mp3
qualquer nome de arquivo / diretório que termine em.mp3
.Portanto, qualquer arquivo que termine em
.mp3
no/media/kalenpw/MyBook/Music/
diretório e da mesma forma, qualquer diretório que termine.mp3
em/media/kalenpw/MyBook/Music/
será copiado recursivamente. Se não houver um arquivo / diretório correspondente, nada será copiado.Agora, copie todos os
.mp3
arquivos do/media/kalenpw/MyBook/Music/
recursivley para o diretório/media/kalenpw/HDD/Music/
:Usando
bash
:Usando
find
:fonte
Você também pode usar cpr :
Observe que sem o
-p
cpr preservará os caminhos completos do diretório nos nomes de arquivos copiados.-r
pode ser usado (em vez de-p
) para preservar o caminho em '/media.../Music/'.Também
cpr
cuidará para que nenhum arquivo seja substituído, acrescentando um número começando em '0001' a qualquer nome de arquivo repetido copiado.fonte
Suponha que você tem um monte de
.docx
,.mp3
,.txt
e.xlsx
arquivos armazenados nesta estrutura de diretórios:... e você deseja recursar em todos esses diretórios para copiar todos os
.mp3
arquivos encontrados,/home/me/music/
mas não deseja preservar essa árvore de diretórios no destino (ou seja, deseja que todos os.mp3
arquivos encontrados sejam copiados para em/home/me/music/
vez de copiados para os respectivos diretórios como/home/me/music/dir1/
,/home/me/music/dir1/dir11/
etc.).Nesse caso, no terminal do shell (bash), execute primeiro este comando para acessar a raiz da sua pesquisa de arquivos:
... e, em seguida, execute este comando:
No caso de você não quiser preservar árvore de diretórios do fonte no destino, execute este comando em vez (após a execução
cd /files
):Nos comandos acima, a pesquisa não diferencia maiúsculas de minúsculas (por exemplo
.mp3
, correspondências.MP3
,.mP3
e.Mp3
). Use em-name
vez de-iname
se desejar que a pesquisa faça distinção entre maiúsculas e minúsculas (por exemplo, usar-name
para a.mp3
sequência de caracteres corresponderá aos arquivos que terminam com,.mp3
mas não àqueles que terminam com.MP3
,.mP3
nem.Mp3
).fonte