当前位置: 首页>>技术教程>>正文


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

, , , ,

问题描述

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

最佳解决思路

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

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

ls -la /var/www/ | grep "\->"

次佳解决思路

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

find . -type l -ls

只处理当前目录:

find . -maxdepth 1 -type l -ls

积分:How do I make the shell to recognize the file names returned by a `ls -A` command, and these names contain spaces?

第三种解决思路

ls -la命令显示所有文件和文件夹以及符号链接目录,如果此命令不显示任何符号目录,则表示您没有到WordPress的符号链接。

查看运行ls -la的结果:

kasiya@kasiya-pc:~$ cd /sys/devices/platform/sony-laptop
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la
total 0
drwxr-xr-x  3 root root    0 Sep  9 19:57 .
drwxr-xr-x 14 root root    0 Sep 10  2014 ..
-r--r--r--  1 root root 4096 Sep  9 22:32 battery_care_health
-rw-r--r--  1 root root 4096 Sep  9 22:32 battery_care_limiter
lrwxrwxrwx  1 root root    0 Sep  9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
-r--r--r--  1 root root 4096 Sep  9 22:32 modalias
drwxr-xr-x  2 root root    0 Sep  9 22:32 power
lrwxrwxrwx  1 root root    0 Sep  9 22:32 subsystem -> ../../../bus/platform
-rw-r--r--  1 root root 4096 Sep  9 22:32 touchpad
-rw-r--r--  1 root root 4096 Sep  9 19:57 uevent

您会看到所有符号目录在权限标志的乞讨处具有l权限。如果你使用^l grep,你只能列出符号文件或目录:

kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la |grep ^l
lrwxrwxrwx 1 root root    0 Sep  9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
lrwxrwxrwx 1 root root    0 Sep  9 22:32 subsystem -> ../../../bus/platform
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ 

驱动程序和子系统目录是符号链接到这里的其他目录。

第四种思路

POSIXly:

find ! -name . -prune -type l

第五种思路

grep是你的朋友:

ls -lhaF | grep ^l   # list links
ls -lhaF | grep ^d   # list directories
ls -lhaF | grep ^-   # list files

这将列出以”l”开头的行,它们代表的是perms列中的链接,代替l使用d的目录,-的文件

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/781.html,未经允许,请勿转载。