简短结论:Debian(Linux)里的软链接(symbolic link)本身不支持通配符( ? 等)展开*。
下面详细说一下:
软链接只是一个指向某个固定路径的文件,它保存的是字符串路径,比如:
ln -s /data/logs/access.log /tmp/access_link
这个链接只会指向 /data/logs/access.log 这一个文件。
如果你这样写:
ln -s /data/logs/*.log /tmp/logs_link
实际效果取决于 shell 是否展开 *:
✅ 软链接里不会保存 * 这种通配规则
例如:
ln -s /data/logs /tmp/logs
你访问:
ls /tmp/logs/*.log
这里的 * 是 shell 展开的,不是软链接支持的。
软链接只是“路径跳转”,不参与通配逻辑。
ln -s /data/logs /tmp/logs
然后:
ls /tmp/logs/*.log
mount --bind /data/logs /mnt/logs
#!/bin/bash
ls /data/logs/*.log
适合“新文件自动生成软链接”。
* ? 通配如果你是 特定使用场景(比如 nginx、日志、docker、systemd),可以告诉我,我可以给更合适的方案。