Существуют некоторые пакеты, доступные для узла, которые упрощают системные сценарии.
Диспетчер пакетов узла является, вероятно, самым легким способом установить такие пакеты; сам узел может быть создан из источника (с v8 механизмом, на котором он работает), или установленный через некоторых менеджеров по системному пакету.
Вы, возможно, должны учиться использовать evented ввод-вывод для получения очень сделанными.
Перемещать файлы со словом на его имя:
find /path/to/dir1 /path/to/dir2 /and/so/on -type f -iname "*heavengames*" \
-exec mv -t /path/to/heavengames-threads {} \+
Перемещать файлы со словом в его теле:
find /path/to/dir1 /path/to/dir2 /and/so/on -type f -exec grep -q heavengames {} \; \
-exec mv -t /path/to/heavengames-threads {} \+
PS, чтобы проверить, что все корректно, добавить echo
прежде mv
на первом показе.
В zsh или ударе ≥4, на основе имени файла:
mkdir heavengames-threads
mv **/*heavengames*.html heavengames-threads/
Для большей гибкости (например, для воссоздания иерархии каталогов, ищут zmv
(существует много примеров на этом сайте).
Использовать grep
искать содержание файла. С последними версиями утилит GNU (т.е. на невстроенном Linux или Cygwin):
grep -RZ heavengames . | xargs -0 mv -t heavengames-threads/
Для большего количества портативных команд использовать find
. См. ответ Порыва.