Использование только указанных функций POSIX и нет предположений относительно имен файлов:
find ~/directory -type f -exec grep -qiF 'string' {} \; -exec mv {} /path/to/dest \;
Примечания:
Вы сказали "строка" не "шаблон", поэтому вариант -F
(поиск фиксированной строки) для grep
кажется подходящим.
Если ваш целевой каталог находится где-то внутри вашего каталога поиска, у вас могут быть неприятные условия гонки.
Точная цитата из статьи ext4 в Википедии:
. Однако Red Hat рекомендует использовать XFS вместо ext4 для томов размером более 100 ТБ.
В ext4 Howto упоминается, что
Код для создания файловых систем размером более 16 ТиБ на момент написания этой статьи отсутствует ни в одной стабильной версии e2fsprogs. Это будет в следующих выпусках.
что было бы одной из причин избегать файловых систем размером более 16 ТиБ, но это примечание устарело: e2fsprogs
, поскольку версия 1.42 (ноябрь 2011 г.) вполне способна создавать и обрабатывать файловые системы размером более 16 ТиБ. . mke2fs
использует для таких систем типы big
и huge
(на самом деле, big
между 4 и 16 ТиБ, huge
вне); они увеличивают соотношение инодов, так что предоставляется меньше инодов.
Возвращаясь к рекомендации Red Hat, начиная с RHEL 7.3, XFS является файловой системой по умолчанию, поддерживаемой до 500 ТиБ, а ext4 — только поддерживается до 50 ТиБ. Я думаю, что это скорее контракт, чем технический, хотя Руководство по администрированию хранилища формулирует ограничения в технической форме (не вдаваясь в подробности). Я предполагаю, что существуют технические или производительные причины для ограничения в 50 ТиБ...
Примечания к выпуску e2fsprogs
дают одну причину избегать файловых систем размером более 16 ТиБ. : видимо, функция resize_inode
должна быть отключена в файловых системах большего размера.