Encontre e copie certos tipos de arquivos de um diretório para outro
Meu disco rígido externo está uma bagunça. Sim, porque despejei todos os arquivos em um único diretório. Eu estava com preguiça de organizar arquivos e pastas na ordem certa. Demorei mais tempo procurando um arquivo específico. Então, pensei que seria muito melhor organizar determinados tipos de arquivos em diretórios separados. Resolvi criar pastas para cada tipo de arquivo e armazenar os arquivos nas respectivas pastas. Digamos, por exemplo, que todos os arquivos de mídia (áudio e vídeo) devam ir para um diretório chamado Multimídia, os arquivos de imagem para a pasta Imagens e os materiais oficiais relacionados para uma pasta chamada >ostechnix.
No entanto, localizar e copiar manualmente cada tipo específico de arquivo é uma tarefa tediosa e bastante demorada. Levará horas para localizar e copiar todos os arquivos se você tiver um grande número de arquivos. Então, fiz uma rápida pesquisa no Google e encontrei uma solução adequada. Se você sempre quis copiar certos tipos de arquivos de um diretório para outro em sistemas operacionais Linux e semelhantes ao Unix, aqui está uma maneira de fazer isso. Pode haver muitas maneiras de fazer isso, mas descobri que o método a seguir é fácil e simples de seguir.
Encontre e copie certos tipos de arquivos de um diretório para outro no Linux
Usaremos o comando ‘find’ para organizar os arquivos. O comando Find vem pré-instalado na maioria das distribuições do tipo Unix, então não vamos nos preocupar em instalá-lo. Para os fins deste guia, mostrarei como localizar e copiar rapidamente arquivos mp3 de um diretório chamado test1 para outro diretório chamado test2.
Vamos verificar o conteúdo do diretório de teste.
ls /home/sk/test1
Exemplo de resultado:
'Bombay Rockers.mp3' 'Marconi Union - Sleepless.mp3' wiua9.jpg
books.txt Maruvaarthai.mp3
Como você pode ver no resultado acima, existem três arquivos mp3 no diretório test1. Vamos copiar esses arquivos mp3 para o diretório test2. Para fazer isso, vá para o diretório test1 usando o comando:
cd /home/sk/test1/
Em seguida, execute o seguinte comando para localizar e copiar todos os arquivos que correspondam à extensão .mp3.
find -iname '*.mp3' -exec cp {} /home/sk/test2/ \;
Vamos analisar o comando acima e ver o que cada opção faz.
- find - É o comando para localizar arquivos e pastas em sistemas do tipo Unix.
- -iname '*.mp3' - Pesquise arquivos que correspondam à extensão .mp3.
- -exec cp - Diz para você executar o comando 'cp' para copiar arquivos do diretório de origem para o de destino.
- {} - é automaticamente substituído pelo nome dos arquivos encontrados pelo comando 'find'.
- /home/sk/test2/ - Diretório de destino para salvar os arquivos correspondentes.
- \; - Indica que os comandos a serem executados estão completos, e para executar o comando novamente na próxima partida.
Claro? Bom! Agora, vamos verificar o diretório test2 para verificar se os arquivos foram copiados corretamente.
ls /home/sk/test2
A saída de exemplo seria:
'Bombay Rockers.mp3' Maruvaarthai.mp3
'Marconi Union - Sleepless.mp3'
Como você pode ver, todos os arquivos com extensão .mp3 foram copiados do diretório test1 para test2. Da mesma forma, você pode copiar outros tipos de arquivos para diferentes diretórios de sua escolha, conforme descrito acima.
O comando acima copiará todos os arquivos *.mp3 do diretório de origem e também de seus subdiretórios. Se você não quiser fazer isso, use o sinalizador -maxprofundidade. Por exemplo, o comando a seguir copiará todos os arquivos .mp3 apenas do diretório de origem, mas não de seus subdiretórios.
find -maxdepth 1 -iname '*.mp3' -exec cp {} /home/sk/test2/ \;
Dessa forma, você pode economizar muito tempo quando quiser encontrar um determinado tipo de arquivo. Este truque pode ser útil quando você precisa transferir uma grande quantidade de diferentes tipos de arquivos de um diretório para outro.
Leitura relacionada:
- Copie tipos de arquivos específicos enquanto mantém a estrutura de diretórios no Linux
Para obter mais detalhes, consulte as páginas de manual.
man find
Há também um script chamado 'Classificador' que organizará automaticamente seus arquivos com base na extensão do arquivo em diferentes diretórios. Mais detalhes podem ser encontrados no link abaixo.
- Como organizar automaticamente tipos semelhantes de arquivos em pastas específicas
Espero que isto ajude.