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
-
.
informafind
para iniciar com o diretório atual. (Você pode substituir isso por qualquer diretório que desejar. -
-maxdepth 4
diz afind
para não descer mais de quatro níveis na estrutura de diretórios. -
-type f
diz afind
para procurar apenas por arquivos regulares. -
-name 'file[AB].txt'
diz afind
para procurar apenas por arquivos que correspondam ao globfile[AB].txt
.Como alternativa, para corresponder a
fileA.txt
oufileB.bb
, usamos dois-name
testes combinados com um lógico ou (-o
) e agrupados com parens:\( -name 'fileA.txt' -o -name 'fileB.bb' \)
-
-execdir mv {} ../ \;
diz afind
para acessar o diretório do arquivo e executar o comando shellmv {} ../
ondefind
substituirá{}
pelo nome real do arquivo. A expressão../
é o idioma do Unix para o diretório pai. O trailing\;
simplesmente marcafind
no final do comando shell