在没有任何权限信息、日期等的情况下,如何获取符号链接及其目标文件?

在没有任何权限信息、日期等的情况下,如何获取符号链接及其目标文件?

我想显示有关符号链接及其目标文件的信息,而没有不必要的(对于此任务)信息。到目前为止,我发现最好的方法是使用以下变体find

find -L /path/to/dir/ -xtype l -exec ls -al {} \;

这将输出类似这样的内容:

lrwxr--r-- 1 user user 34 Feb 19 09:49 ./testdir1/slink1 -> /test/file.txt
lrwxr--r-- 1 user user 45 Feb 19 10:02 ./testdir1/slink2 -> /test/test2/file2.txt

有没有可能的方法来删除权限信息、修改日期等,如下所示:

./testdir1/slink2 -> /test/test2/file2.txt

答案1

一种方法是,仅使用纯查找解决方案。

find /path/to/file -type l -printf '%-40p  --> %l\n

只需删除-40或调整到所需的输出即可。

答案2

尝试一下readlink命令。

例如(调整您的 find 命令):

find -L /path/to/dir/ -xtype l -exec readlink {} \;

或者,将其设为 source -> target

find -L . -xtype l -print0 | xargs -0 -I{} bash -c 'echo {} "->" "$(readlink {} )"'

相关内容