De acordo com este SO Post: use xargs para mv o diretório “find” em outro diretório
eu usaria algo como:
find /var/www/uploads/ -type d \( -name '*Physics*' -o -name '*Math*' \) \
-exec mv -t /mnt/Backup/ {} +
Isso localizará qualquer diretório em qualquer profundidade na sua pasta /var/www/uploads
e o moverá para o diretório de backup.
Se você quiser limitar a pesquisa ao primeiro nível, pode adicionar para encontrar a opção -maxdepth 1
find /var/www/uploads/ -maxdepth 1 -type d \( -name '*Physics*' -o -name '*Math*' \) \
-exec mv -t /mnt/Backup/ {} +
E se você quiser fazer uma pesquisa sem distinção entre maiúsculas e minúsculas, poderá usar o argumento -iname
em vez de -name
, por isso parece:
find /var/www/uploads/ -type d \( -iname '*Physics*' -o -iname '*Math*' \) \
-exec mv -t /mnt/Backup/ {} +
Nota:
isso funcionará apenas com versões recentes do GNU ou FreeBSD find
e mv
( -iname
, -maxdepth
e -t
não são padrão).
Eu também uso \
para adicionar o jumpline na linha de comando e torná-lo mais legível.
Nota 2:
Se você quiser ter um bom entendimento do comando, tente este link do ExplainShell