Find

使用萬用字元查找目錄並執行 git status not working

  • March 21, 2021

當我跑

find -maxdepth 1 -type d -name 'iptp*' -execdir bash -c "ls {}" \;

我得到一個名為 iptp* 的所有目錄的列表

當我跑

find -maxdepth 1 -type d -name 'iptp*' -execdir bash -c "git status {}" \;

我明白了

fatal: Not a git repository (or any parent up to mount parent )
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

我似乎git status在 find 開始的父目錄中執行。

我做錯了什麼?

使用-execdir,命令在包含匹配項的目錄中執行,名稱以“iptp”開頭的目錄的父目錄。

.git您可以改為尋找路徑匹配iptp*

find -maxdepth 2 -type -d -name .git -path "*/iptp*/*" -execdir git status \;

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