2015-09-18 85 views
0

因爲cscope不會跟隨(相對)符號鏈接,所以我需要技術來收集(相對)符號鏈接背後的絕對路徑。print cscope的符號鏈接的絕對路徑

例子:

Wehen我會找到我使用find命令這樣的目錄中的所有C文件:

#!/bin/bash 

LNX="/home/cabs/BUILD-ENV/Android_C1/kernel" 
FILELOC="/home/cabs/BUILD-ENV/Scope_C1" 
ANDROID="/home/cabs/BUILD-ENV/Android_C1" 

echo "Android Files" 

find $ANDROID \ 
-path "$ANDROID/bionic" -prune -o \ 
-path "$ANDROID/bootable" -prune -o \ 
-path "$ANDROID/build" -prune -o \ 
-path "$ANDROID/dalvik" -prune -o \ 
-path "$ANDROID/development" -prune -o \ 
-path "$ANDROID/device" -prune -o \ 
-path "$ANDROID/external" -prune -o \ 
-path "$ANDROID/frameworks" -prune -o \ 
-path "$ANDROID/hardware" -prune -o \ 
-path "$ANDROID/packages" -prune -o \ 
-path "$ANDROID/system" -prune -o \ 
-path "$ANDROID/vendor" -prune -o \ 
-name '*.java' -print -o \ 
-name '*.aidl' -print -o \ 
-name '*.hpp' -print -o \ 
-name '*.cpp' -print -o \ 
-name '*.xml' -print -o \ 
-name '*.mk' -print -o \ 
-name '*.[chxsS]' \ 
#-print >$FILELOC/cscope.files 

現在,我會得到一個文件所有需要的pathes。

一個示例項:

/家/轎廂/ BUILD-ENV/Android_C1/prebuilts/NDK/6 /平臺/機器人-5 /弓形臂的/ usr /包括/ ARPA/nameser。 h

但是這個條目可能是一個符號鏈接。 (其不能由cscope的被procecced)

的符號鏈接可能看起來像以下示例:

/家/轎廂/ BUILD-ENV/Android_C1/prebuilts/NDK/6 /平臺/機器人-5 /拱-arm/usr/include/arpa/nameser.h - > ../../../../../../platforms/android-4/arch-arm/usr/include/arpa/nameser。^h

如何可以在「cscope.files」文件進行解析,使原來的條目(指向符號連接)將與符號鏈接後面的文件的絕對路徑?強大的文本

回答

0

使用替代readlinkrealpath應該做的伎倆。

readlink -f symlinkName 
realpath symlinkName 

您可以直接在您的find命令中使用它們。例如:

find . -exec realpath {} \; 
相關問題