Linux 打印Cscope符号链接的绝对路径

Linux 打印Cscope符号链接的绝对路径,linux,find,symlink,cscope,Linux,Find,Symlink,Cscope,由于cscope不会遵循(相对的)符号链接,我需要一种技术来 收集(相对)符号链接后面的绝对路径 例如: We当我在一个目录中查找所有c文件时,我使用find命令,如下所示: #!/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"

由于cscope不会遵循(相对的)符号链接,我需要一种技术来 收集(相对)符号链接后面的绝对路径

例如:

We当我在一个目录中查找所有c文件时,我使用find命令,如下所示:

#!/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
现在我将获得一个包含所有所需路径的文件

示例条目:

/home/cabs/BUILD-ENV/Android_C1/prebuilts/ndk/6/platforms/Android-5/arch-arm/usr/include/arpa/nameser.h

但是这个条目可能是一个符号链接。(cscope无法处理)

符号链接可能类似于以下示例:

/home/cabs/BUILD-ENV/Android_C1/prebuilts/ndk/6/platforms/Android-5/arch-arm/usr/include/arpa/nameser.h->../../../../../../../platforms/Android-4/arch-arm/usr/include/arpa/nameser.h


如何解析“cscope.files”文件,以便将原始条目(指向符号链接)替换为符号链接后面的文件的绝对路径?强文本

使用
readlink
realpath
应该可以做到这一点

readlink -f symlinkName
realpath symlinkName
您可以在
find
命令中直接使用它们。 例如:

find . -exec realpath {} \;