2009-12-10 85 views

回答

7

一種簡單,快捷的方式,假設你有一個目標的絕對路徑(readlink(1)可能與此事有所幫助):

find $PATH -type l -xtype d -lname "$DIR*" 

此發現下面$PATH其鏈接到一個目錄下的所有符號鏈接(-type l) (-xtype d),名稱以$DIR開頭。


的另一種方法,這是O(n * m個),並且因此可能需要年齡兩天:

find $DIR -type d | xargs -n1 find $PATH -lname 

第一find列表$DIR和所有的子目錄然後將其傳遞(xargs) ,一次一個(-n1),到第二find看起來爲始發下面$PATH所有符號鏈接。


總結的事情了:find(1)是你的朋友。

+0

發現$ PATH型升-lname 「$ DIR *」 – ives 2015-02-06 04:56:12

+0

發現$ PATH型升-lname 「$ DIR *」 -exec ls -l命令{} \; – ives 2015-02-06 04:58:47

3

跟進the answer given by earl

-xtype無法在Mac OSX工作,但可以安全地忽略:

find $PATH -type l -lname "$DIR*" 

例子:

find ~/ -type l -lname "~/my/sub/folder/*" 
+0

'-xtype'用於查找符號鏈接的時候'-L'(舊天'-follow')上。 '-xtype'是afaik是一個GNU擴展。你是對的。由於不使用'-L',因此可以安全省略。有人認爲'-type d'只會給出目錄,'-type l -type d'只會給目錄提供符號鏈接。 – andlrc 2016-05-07 16:05:40

相關問題