Linux

在子目錄中查找路徑目錄

  • August 24, 2015

我想找到bbb父目錄呼叫的目錄名稱的路徑aaa

例如

/aaa/bbb
/tmp/aaa/bbb
/usr/bin/aaa/bbb
/home/aaa/bbb
/home/aaa/xxx/bbb

所以我寫了這樣的東西:

find /*/aaa -name bbb

在某些平台上它可以工作,而在某些平台上它沒有,並且在任何情況下/aaa/bbb都找不到,因為沒有父目錄aaa

我想我可以跑find / -name bbb | grep \/aaa,但我想如果有更聰明的東西..?

在這種情況下使用-path選項:

find / -type d  -path '*/aaa/bbb'

從查找的手冊頁中:

文件名與外殼模式模式匹配。元字元不處理/.特殊處理;所以,例如,

find . -path "./sr*sc"

將為名為 `./src/misc’ 的目錄列印一個條目(如果存在)。

跨平台兼容性

*編輯:*我剛剛注意到aixhp-ux標籤。

您沒有指定find您使用的是哪個版本,以上資訊適用於 GNU find。但是,手冊頁還指定,

謂詞 -path 也受 HP-UX find 支持,並將在即將發布的 POSIX 標準版本中。

所以它看起來-path可以在 HP-UX 中使用,但不能在 AIX 中使用(至少不是 AIX 7.1,截至 2015 年 8 月 24 日的最新版本)。

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