Linux

我想知道 Linux 中“find . -name ‘.c’ -or -name ‘.cpp’” 的確切命令

  • September 25, 2017

這些天我正在Linux中學習shell。我有一個問題。

請看下面的命令:

$ find . -name '*.c' -or -name '*.cpp'

上面的命令在內部像下面的命令一樣處理嗎?

$ find . -name '*.c' -and -print -or -name '*.cpp' -and -print

man find說:

  If the whole expression contains no actions other than -prune or -print,
  -print is performed on all files for which the whole expression is true.

所以是的,它是等價的,但可能更容易將其視為:

find . \( -name '*.c' -or -name '*.cpp' \) -and -print

或更簡單,並且符合 POSIX 標準:

find . \( -name '*.c' -o -name '*.cpp' \) -print

基本上這兩個命令的含義相同並顯示相同的輸出。當你有更短的路時,為什麼要用更長的時間?

引用自:https://unix.stackexchange.com/questions/394232