如何列出目录中的所有符号链接

Isa*_*aac 219 command-line find ls symbolic-link

我的/var/www/目录中有一个链接到 WordPress的符号链接。当我ls -la/var/www/目录运行命令时,指向 WordPress 的链接没有显示。有没有办法列出目录中的所有符号链接?

Syl*_*eau 397

解析ls是一个坏主意®find在这种情况下更喜欢简单的:

find . -type l -ls
Run Code Online (Sandbox Code Playgroud)

只处理当前目录:

find . -maxdepth 1 -type l -ls
Run Code Online (Sandbox Code Playgroud)

积分:如何让 shell 识别由 `ls -A` 命令返回的文件名,并且这些名称包含空格?

  • @ahnbizcad:不是`1`(一)而是`l`(链接) (17认同)
  • 很好的答案!我调整了我的目录路径,不要像这样:`find /<your_directory> -maxdepth 1 -type l -ls 2>/dev/null` 谢谢! (3认同)
  • 仅对当前目录(即**非递归**)添加`-maxdepth 1`。 (3认同)
  • @GabrielStaples from man find: `-ls True; 在标准输出中以 ls -dils 格式列出当前文件。` 在 /etc 中查看 `./os-release -> ../usr/lib/os-release` 而不仅仅是 `./os-release` 很有用 (2认同)

g_p*_*g_p 116

您可以使用grepwithls命令列出当前目录中存在的所有符号链接。

这将列出当前目录中存在的所有链接。

ls -la /var/www/ | grep "\->"
Run Code Online (Sandbox Code Playgroud)

  • 如果您有一个包含“`->`”的文件,它将返回误报。尝试一个简单的`touch "foo->"` (9认同)
  • 为什么不使用 `^l` 进行 `grep`? (6认同)
  • 像往常一样,最好的答案是最高的+ (4认同)

小智 9

grep 是你的朋友:

ls -lhaF | grep ^l   # list links
ls -lhaF | grep ^d   # list directories
ls -lhaF | grep ^-   # list files
Run Code Online (Sandbox Code Playgroud)

这将列出行开头“L”代表链接在烫发柱代替l使用d目录和-用于文件


cuo*_*glm 5

POSIXly:

find ! -name . -prune -type l
Run Code Online (Sandbox Code Playgroud)