%20e%20depois%20movo%20todos%20esses%20arquivos%20para%20uma%20pasta%20espec%C3%ADfica%3F.png)
Diga - e se eu quisesse mover todos os arquivos HTML em vários diretórios independentes com a palavra "heavengames" no nome do arquivo (e como segunda pergunta, todos os arquivos HTML com a palavra "heavengames" no corpo do texto) para um novo diretório chamado "tópicos de jogos celestiais"?
Responder1
Para mover arquivos com a palavra no nome:
find /path/to/dir1 /path/to/dir2 /and/so/on -type f -iname "*heavengames*" \
-exec mv -t /path/to/heavengames-threads {} \+
Para mover arquivos com palavra no corpo:
find /path/to/dir1 /path/to/dir2 /and/so/on -type f -exec grep -q heavengames {} \; \
-exec mv -t /path/to/heavengames-threads {} \+
obs. para verificar se tudo está correto, adicione echo
antes mv
na primeira execução.
Responder2
Em zsh ou bash ≥4, com base no nome do arquivo:
mkdir heavengames-threads
mv **/*heavengames*.html heavengames-threads/
Para obter mais flexibilidade (por exemplo, para recriar a hierarquia de diretórios, procurezmv
(hámuitos exemplos neste site).
Use grep
para pesquisar o conteúdo do arquivo. Com versões recentes de utilitários GNU (ou seja, em Linux não embarcado ou Cygwin):
grep -RZ heavengames . | xargs -0 mv -t heavengames-threads/
Para comandos mais portáveis, use find
. VerA resposta de Rush.