Você pode simplesmente fazer a partir do diretório base que deseja pesquisar
cp $(grep -r -l "the pattern" *) target_directory
-
grep -r
significa negativista -
-l
significa listar o caminho do arquivo e não a correspondência nele. -
colocar
$()
em volta do comando executará e colocará o resultado no lugar no comando externo. -
O cp terá uma lista de arquivos e, desde que o último caminho seja um diretório, copie-os lá.