我試圖使用一個變量來指定find
命令中的排除路徑。如何使用變量指定要在`find`中排除的路徑?
這個片段的工作:
x="*test/.util/*"
y="*test/sh/*"
find test -type f -name "*.sh" -not -path "$x" -not -path "$y"
但我想移動-not -path
到變量,如:
x="-not -path *test/.util/*"
y="-not -path *test/sh/*"
# error: find: -not -path *test/.util/*: unknown primary or operator
find test -type f -name "*.sh" "$x" "$y"
# Tried removing quotes
# error: find: test/.util/foo.sh: unknown primary or operator
find test -type f -name "*.sh" $x $y
我也嘗試添加引號變量中的路徑,但這導致沒有路徑過濾。
# no syntax error but does not exclude the paths
x="-not -path '*test/.util/*'"
y="-not -path '*test/sh/*'"
我正在使用OSX Mavericks; GNU bash,版本3.2.51(1)-release(x86_64-apple-darwin13)。
我在做什麼錯?謝謝
@ chepner的答案是完全正確的,並且是on-point。你也可能會看到BashFAQ#50:http://mywiki.wooledge.org/BashFAQ/050 –