在 CentOS(或一般 Linux)下,“批量建软连接”常见有几种场景,下面按最常用方式给你说明,你可以对号入座。
把 /data/src/ 下的所有文件,软链到 /data/dst/
for f in /data/src/*; do
ln -s "$f" /data/dst/
done
✅ 说明:
* 不包含隐藏文件(. 开头)for f in /data/src/* /data/src/.*; do
[ -e "$f" ] && ln -s "$f" /data/dst/
done
for f in /data/src/*.conf; do
ln -s "$f" /data/dst/
done
find 批量建软链(适合深层目录)find /data/src -type f -exec ln -s {} /data/dst/ \;
或只链接一层:
find /data/src -maxdepth 1 -type f -exec ln -s {} /data/dst/ \;
如果你希望:
/data/src/a/b.txt
软链成:
/data/dst/a/b.txt
可以用 rsync:
rsync -a --symbolic-links /data/src/ /data/dst/
或用 cp:
cp -rs /data/src/* /data/dst/
⚠️ 注意:cp -rs 创建的是相对软链
for f in /data/src/*; do
[ -e "/data/dst/$(basename $f)" ] || ln -s "$f" /data/dst/
done
ls -l /data/dst
或
find /data/dst -type l
如果你能说清楚:
我可以直接给你一条最合适命令。