※ 引述《newlinuxer (新麗仕人)》之銘言:
: 我在Linux下想找出/data/abc/*/*/*/target_dir 這種型態的目錄有哪些並列出來
: *代表任意字串, 也就是中間需隔三層目錄, 接下來名稱為target_dir的目錄要列出來
: 於是用指令 find /data -type d -print | grep "/abc/.*/.*/.*/target_dir"
: 卻找不到任何資料~
: 如果下find /data -type d -print | grep "/target_dir" 當然可以,
: 但變成只隔1層2層的也會列出來~.~
: 要怎樣才能達到我的需求呢?
提供另一解:
find /data -type d -print | grep -P "/abc/[^\\/:*?"<>|]+/[^\\/:*?"<>|]+/[^\\/:*?"<>|]+/target_dir"
-P 代表 Perl style regex(可以少打很多字,支援也比較豐富)
[^\\/:*?"<>|] 代表目錄由這些之外的字元組成