2015-09-18 86 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 {} \; 
相关问题