Как псевдоним части выражения для поиска?

Я предпочитаю регулярные выражения с -regex над синтаксисом шаблона оболочки -name . Я также хочу использовать posix-egrep , поэтому я хотел бы сделать что-то вроде

alias find="find -regextype posix-egrep"

но это ошибка, так как путь должен идти перед выражением. Тем не менее, -regextype должен быть первым в выражениях (или перед использованием -regex или -iregex ).

Я просто хочу использовать псевдоним или find функцию оболочки, чтобы она работала так же, как обычно, просто готова использовать posix-regex всякий раз, когда я решаю использовать параметр -regex или -iregex .

Как я могу это сделать?

  • команда find вызывает ошибки при работе внутри
  • Как получить, чтобы показывать псевдонимы?
  • вызов функции Bash из определения псевдонима
  • Создание нескольких временных псевдонимов
  • Создание псевдонима для сценария bash
  • Как определить псевдоним для неинтерактивной / недействительной оболочки?
  • Мультипликации псевдонимов для одной команды
  • Запустите команду, которая затенена псевдонимом
  • 2 Solutions collect form web for “Как псевдоним части выражения для поиска?”

    поскольку аргументы find являются позиционными, функция будет лучшим решением.

     find(){ command find "$1" -regextype posix-egrep "${@:2}" } 

    так как вы хотите «перезаписать» исходную команду, вам нужно использовать полный путь find чтобы ваша новая функция не создавала бесконечный цикл вызова себя.

    используя функцию вместо псевдонима, мы можем использовать переменные позиционного аргумента ( $1-$n ). так как вы также можете добавить другие вещи в конец своей find мы добавим команду с помощью ${@:2} которая добавляет все, кроме первого аргумента (ваш путь), используя срез массива.

    Вы могли бы сделать что-то вроде:

     efind() ( found=false for arg do if [ "$arg" = -regex ] && ! "$found"; then set -- "$@" -regextype posix-egrep found=true fi set -- "$@" "$arg" shift done exec find "$@" ) 

    Вставить -regex-type posix-egrep перед первым вхождением -regex .

    Interesting Posts

    Как установить небуферизованный ввод-вывод в `screen`?

    В чем разница между выводами и остановками в командах мультиплексирования ssh?

    Можете ли вы использовать grub для загрузки файла раздела RW, хранящегося на жестком диске FAT32?

    Fedora 20 не принимает правильный PIN-код для мобильного широкополосного доступа

    «Ошибка при загрузке разделяемых библиотек: libgtk-x11-2.0.so.0: невозможно открыть файл общих объектов» при выполнении двоичного кода oald8

    невозможно отключить, разрешено отклонение

    Позиционные параметры вызывающего абонента функции

    Раздел LVM + LUKS. Является ли эта архитектура зависимой или независимой?

    Chromecast / Cubetek Ezcast с Linux-компьютером?

    Как найти файлы к моменту их имени?

    Linux-эквивалент команды «начать» Cisco

    Получение пароля после редактирования файла sudoers в cent OS 7?

    SSH & ForwardX11 против ForwardX11Trusted -> за пределами моего понимания

    Как запланировать первоначальную настройку системы после клонирования?

    Как исключить данные строки в syslog-ng?

    Linux и Unix - лучшая ОС в мире.