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

时间:2015-09-18 12:30:34

标签: linux find symlink cscope

由于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

现在我将获得一个包含所有所需内容的文件。

示例条目:

/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 - > ../../../../../../平台/机器人-4 /弓形臂的/ usr /包括/ ARPA / nameser.h

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

1 个答案:

答案 0 :(得分:0)

使用readlinkrealpath可以解决问题。

readlink -f symlinkName
realpath symlinkName

您可以直接在find命令中使用它们。 示例:

find . -exec realpath {} \;