在 CentOS(及其他 Linux 发行版)中,“批量建软连接”通常有以下几种常见场景和做法,按你实际需求选一种即可。
例如:把 /data/src/* 下的文件,全部软链接到 /data/dst/
for f in /data/src/*; do
ln -s "$f" /data/dst/
done
✅ 说明:
ln -s 源 目标for f in /data/src/*.txt; do
ln -s "$f" /data/dst/
done
find /data/src -type f -exec ln -s {} /data/dst/ \;
或只链接 .log 文件:
find /data/src -type f -name "*.log" -exec ln -s {} /data/dst/ \;
例如:
/data/src/a/1.txt
/data/src/b/2.txt
链接后:
/data/dst/a/1.txt
/data/dst/b/2.txt
cp -rs /data/src/* /data/dst/
✅ 参数说明:
-r:递归-s:创建软链接⚠ 注意:cp -rs 在某些老旧 CentOS 版本中可能不支持,CentOS 7+ 一般没问题。
for f in /data/src/*; do
name=$(basename "$f")
[ -e "/data/dst/$name" ] || ln -s "$f" /data/dst/
done
ln -sf /data/src/file /data/dst/file
批量:
for f in /data/src/*; do
ln -sf "$f" /data/dst/
done
❌ 软链接指向了相对路径导致失效
✅ 建议使用绝对路径:
ln -s /data/src/file /data/dst/file
如果你能告诉我:
我可以给你更精确的命令。