Это будет иметь тот же эффект, который имел бы псевдоним, избегая любых "творческих решений", чтобы сделать работу, и является более гибким, если вам когда-либо понадобится гибкость. Хорошим примером такой гибкости в этом случае является то, что пользователь может указать каталог для поиска и по умолчанию для текущего каталога, если каталог не указан.
function mx {
if [ -n $1 ]; then
dir=$1
else
dir='.'
fi
find $dir -name '*.sh' -exec chmod a+x '{}' \;
}
Ответ 3
Другие ответы содержат лучшие решения в этом (и большинстве) случаях, но если вы по какой-то причине действительно хотите избежать ', вы можете сделать '"'"', который фактически завершает строку, добавляет ', экранированный " и снова запустите строку.
alias mx='find . -name '"'"'*.sh'"'"' -exec chmod a+x {} \;'
alias mx=$'find . -name \'*.sh\' -exec chmod a+x \'{}\' \\;'
От man bash:
Слова формы $'string' обрабатываются специально. Слово расширяется до строки с заменой символов с обратным слэшем, как указано в стандарте ANSI C. Последующие последовательности обратного слэша, если они присутствуют, декодируются следующим образом:
\\ backslash
\' single quote
\" double quote
\n new line
...