linux - 打印 Cscope 符号链接(symbolic link)的绝对路径

标签 linux find symlink cscope

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

示例:

当我要找到目录中的所有 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

但是这个条目可能是一个符号链接(symbolic link)。 (cscope 无法执行)

符号链接(symbolic link)可能类似​​于以下示例:

/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”文件,以便将原始条目(指向符号链接(symbolic link))替换为符号链接(symbolic link)后面文件的绝对路径?强文本

最佳答案

使用readlinkrealpath应该可以解决问题。

readlink -f symlinkName
realpath symlinkName

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

find . -exec realpath {} \;

关于linux - 打印 Cscope 符号链接(symbolic link)的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32652103/

相关文章:

django - 使用 bash 脚本删除 django 的数据库设置

c - 有读自旋锁和写自旋锁吗?

c - 抑制 ld symbol not found 错误以便稍后在运行时解决

linux - 在非执行页面上触发执行错误

python - wxPython:ListCtrl查找具有给定字符串的项目

c++ - 在 while 循环中使用字符串查找和替换时的 std::out_of_range

linux - 如何删除具有路径模式的所有文件

node.js - 为什么使用 `yarn link` ?为什么不只是在node_modules 中使用符号链接(symbolic link)呢?

bash - 如何检查符号链接(symbolic link)目标是否与特定路径匹配?

linux - 当您涉及软链接(soft link)时, "cd .."和 "pwd"究竟意味着什么?