我想显示有关符号链接及其目标文件的信息,而没有不必要的(对于此任务)信息。到目前为止,我发现最好的方法是使用以下变体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 {} )"'