问题描述
我在/var/www/
目录中有一个链接到WordPress的符号链接。当我从/var/www/
目录运行命令ls -la
时,不会显示WordPress的链接。有没有办法列出目录中的所有符号链接?
最佳解决思路
可以使用grep
和ls
命令列出当前目录中存在的所有符号链接。
这将列出当前目录中的所有链接。
ls -la /var/www/ | grep "\->"
次佳解决思路
解析ls
是一个糟糕的主意®,在这种情况下更喜欢简单的find
:
find . -type l -ls
只处理当前目录:
find . -maxdepth 1 -type l -ls
第三种解决思路
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
的目录,-
的文件