我更喜欢带有-regex超过 shell 模式语法的正则表达式-name。我也想使用该posix-egrep类型,所以我想做类似的事情
alias find="find -regextype posix-egrep"
但这是一个错误,因为路径必须在表达式之前。但是,-regextype必须是表达式中的第一个(或在使用-regexor之前-iregex)。
我只是想别名或有一个 shell 函数,find以便它像往常一样工作,posix-regex只要我决定使用-regexor-iregex选项就可以使用。
我怎样才能做到这一点?
由于find参数是位置性的,因此函数将是更好的解决方案。
find(){
command find "$1" -regextype posix-egrep "${@:2}"
}
Run Code Online (Sandbox Code Playgroud)
由于您想“覆盖”原始命令,因此您需要使用 的完整路径,find以便您的新函数不会创建调用自身的无限循环。
通过使用函数而不是别名,我们可以使用位置参数变量 ( $1-$n)。因为您可能还想在您的末尾添加其他内容,所以find我们将${@:2}使用数组切片附加除第一个参数(您的路径)之外的所有参数的命令。
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |