CD в родительский каталог, затем:
for f in */abcd*;
do mv $f ./
done
, что будет соответствовать mydir1/abcdfoo
,mydir2/abcdbar
etc. и переместите их в pwd (родительский каталог). Если вы хотите искать только в директориях mydir*, вы можете указать
for f in mydir*/abcd*;
do mv $f ./
done
вы также можете сделать
find . -name "abcd*" -type f -exec mv {} ./ \;
, который находит все обычные файлы (не dir) с именем abcd* и перемещает их в pwd. Find выглядит рекурсивно из каталога, указанного после команды find, то есть "."в данном случае. Можно использовать абсолютные пути, например:
find /path/to/the/parent/dir -name "abcd*" -type f -exec mv {} /path/to/the/destination/dir/ \;
предупреждение: я просто заметил это, когда попробовал. Если в разных каталогах есть несколько файлов с одинаковыми именами, например mydir1/abcdfoo, mydir2 / abcdfoo и так далее, все файлы, кроме одного, будут перезаписаны, оставив вам только один файл abcdfoo в Родительском каталоге.