我更喜欢正则表达式,而-regex
不是的shell模式语法-name
。我也想使用该posix-egrep
类型,所以我想做些类似的事情
alias find="find -regextype posix-egrep"
但这是一个错误,因为路径必须在表达式之前。但是,-regextype
必须在表达式中位于第一个位置(或在使用-regex
或之前-iregex
)。
我只想使用别名或具有shell函数,find
以便它与通常一样工作,posix-regex
只要我决定使用-regex
or-iregex
选项就可以使用。
我怎样才能做到这一点?
因为find
参数是位置函数,所以函数将是更好的解决方案。
find(){
command find "$1" -regextype posix-egrep "${@:2}"
}
由于您要“覆盖”原始命令,find
因此需要使用的完整路径,以便新函数不会创建调用自身的无限循环。
通过使用函数而不是别名,我们可以使用位置参数变量($1-$n
)。由于您可能还想在其末尾添加其他内容,因此find
我们附加了${@:2}
使用数组切片的命令,该命令将除了第一个参数(您的路径)之外的所有内容附加在后面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句