Para mover qualquer arquivo chamado fileA.txt ou fileB.txt para o diretório pai imediato:
find . -maxdepth 4 -type f -name 'file[AB].txt' -execdir mv {} ../ \;
Ou, para mover qualquer arquivo chamado fileA.txt ou fileB.bb para o diretório pai imediato:
find . -maxdepth 4 -type f \( -name 'fileA.txt' -o -name 'fileB.bb' \) -execdir mv {} ../ \;
Como funciona
-
.informafindpara iniciar com o diretório atual. (Você pode substituir isso por qualquer diretório que desejar. -
-maxdepth 4diz afindpara não descer mais de quatro níveis na estrutura de diretórios. -
-type fdiz afindpara procurar apenas por arquivos regulares. -
-name 'file[AB].txt'diz afindpara procurar apenas por arquivos que correspondam ao globfile[AB].txt.Como alternativa, para corresponder a
fileA.txtoufileB.bb, usamos dois-nametestes combinados com um lógico ou (-o) e agrupados com parens:\( -name 'fileA.txt' -o -name 'fileB.bb' \) -
-execdir mv {} ../ \;diz afindpara acessar o diretório do arquivo e executar o comando shellmv {} ../ondefindsubstituirá{}pelo nome real do arquivo. A expressão../é o idioma do Unix para o diretório pai. O trailing\;simplesmente marcafindno final do comando shell