在 CentOS(及其他 Linux 发行版)中,**软链接(symbolic link,软连接)**常见的问题包括:
下面按排查思路 + 常用命令来说明。
ls -l /path/to/symlink
示例输出:
lrwxrwxrwx 1 root root 10 Jun 10 10:00 link -> target
l 开头表示软链接-> 后面是目标路径⚠️ 如果目标路径是红色或闪烁,通常说明目标不存在
readlink -f /path/to/symlink
test -e /path/to/symlink && echo "存在" || echo "断裂"
或更直观:
file /path/to/symlink
ls -l link
如果指向的 target 不存在:
✅ 解决:
ln -sf /real/path /link
错误示例(在 /opt/app 下):
ln -s data /opt/app/logs
实际指向:
/opt/app/data
✅ 建议:
cd /opt/app
ln -s ./data logs
find /path -follow
可能报错:
find: `/path/a': Too many levels of symbolic links
✅ 排查:
namei -l /path/to/symlink
✅ 解决:
rm /path/to/symlink
即使软链接本身 777,也要看:
namei -l /path/to/symlink
示例:
f: /var/www/html
dr-xr-xr-x root root /
drwxr-xr-x root root var
drwx------ www www www
✅ 解决:
chmod 755 /var/www
例如:
/mnt/data/mnt/data 未挂载✅ 检查:
df -h
mount | grep data
ls -l /path/to/link
readlink -f /path/to/link
namei -l /path/to/link
三步基本能定位 90% 问题。
SELinux 拦截查看:
getenforce
解决:
restorecon -Rv /path
如果你能贴出:
ls -l 输出我可以帮你精准定位问题。