Find
如何為查找的表達式的一部分加上別名?
-regex
我更喜歡帶有shell 模式語法的正則表達式-name
。我也想使用這種posix-egrep
類型,所以我想做類似的事情
alias find="find -regextype posix-egrep"
但這是一個錯誤,因為路徑必須在表達式之前。但是,
-regextype
必須在表達式中排在第一位(或在使用-regex
or之前-iregex
)。我只想使用別名或擁有一個 shell 函式
find
,以便它像往常一樣工作,posix-regex
只要我決定使用-regex
or-iregex
選項就可以使用。我怎樣才能做到這一點?
因為
find
參數是位置的,所以函式將是一個更好的解決方案。find(){ command find "$1" -regextype posix-egrep "${@:2}" }
因為你想“覆蓋”你需要使用完整路徑的原始命令,
find
這樣你的新函式就不會創建一個無限循環的呼叫自身。通過使用函式而不是別名,我們可以使用位置參數變數 (
$1-$n
)。因為您可能還想在您的末尾添加其他內容,所以find
我們附加命令,該命令${@:2}
使用數組切片附加除第一個參數(您的路徑)之外的所有參數。