regex может получить группы использоваться в GNU, находят команду?

/home для определенных для пользователя данных, везде, куда они прибывают из или сохранены на. Непосредственные дети /home часто прибывал из других файловых систем назад в славные дни NIS (хотя это было с NFS, автомонтируется). Только казалось бы странным мне, если бы Вам смонтировали персональные файлы на некотором случайном каталоге как непосредственный ребенок /var или что-то. Большинство "лучших практик" касается вещей, связанных с выбором/калибровкой файловой системы (например, reiserfs по сравнению с ext4), управление томами (например, предоставление достаточного количества пространства LV, чтобы сделать их задание и отъезд остальных в VG для более позднего расширения), точки монтирования в основном, "Если это не, очевидно, неправильно, и это - то, где Вы нуждаетесь в пространстве, чтобы быть, делаете это".

В корпоративной среде Вы пытаетесь смонтировать файловые системы, куда люди, скорее всего, пойдут, ища файлы, которые хранятся в той файловой системе, или где, если они видят, файловая система смонтировала, что они могут вывести то, чему принадлежат файлы для. Это - персональный сервер, таким образом, это не проблема, но это было бы, вероятно, прекрасно в корпоративной среде также.

Пока Вы лично понимаете иерархию файловой системы и имеете доступ к файлам, которых Вы создаете резервную копию там, необходимо быть хорошими.

4
26.06.2014, 14:35
2 ответа

Альтернатива хорошему ответу l0b0 (более короткому, но потенциально менее эффективному):

Предположим, что (недавний) GNU sed:

find pool -print0 |
  sed -znE 's|.*/mypackage-([[:alnum:].]+-[0-9]{1,2})-x86_64\.pkg\.tar\.xz$|\1|p'|
  tr '\0' '\n'

Обратите внимание, что дорогая часть find - это прогулка по дереву, которую он должен будет сделать в любом случае, независимо от того, есть у вас -regex или нет. Поэтому здесь мы делаем сравнение и сообщаем в -regex вместо этого.

.
2
27.01.2020, 20:52

Если вы используете

find pool -regextype posix-extended \
    -regex ".*/mypackage-([a-zA-Z0-9.]+-[0-9]{1,2})-x86_64\.pkg\.tar\.xz" \
    -printf '%f\n' |
  grep -Eo '[a-zA-Z0-9.]+-[0-9]{1,2}'

(предполагая, что GNU grep также), то он должен работать для любого пути. Регекс не допускает никаких новых строк, так что нет возможности сделать так, чтобы он совпадал, например, с каталогом, содержащим похожее имя.

.
4
27.01.2020, 20:52

Теги

Похожие вопросы