linux软链接相关|含批量脚本 | XYZ
Post

linux软链接相关|含批量脚本

linux软链接相关|含批量脚本

创建软链接

1
ln -s [源文件或目录] [目标文件或目录]

修改软链接

1
ln --snf [新的源文件或目录] [目标文件或目录]

删除软链接

1
rm -rf 软链接名称

1
rm 软链接名称 # 不加 -rf 也可以

查看帮助

1
ln --help

批量更新软链接源文件路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash

# 定义旧的和新的源文件路径前缀
old_path_prefix="/123/"
new_path_prefix="/456/"

# 遍历当前目录下的所有软链接
for symlink in $(find . -type l); do
    # 使用 readlink 命令获取软链接的绝对路径
    target=$(readlink -e "$symlink")

    # 检查目标路径是否以旧路径前缀开头
    if [[ "$target" == "$old_path_prefix"* ]]; then
        # 构造新的软链接路径
        new_target="${target/$old_path_prefix/$new_path_prefix}"

        # 输出将要进行的操作
        echo "Updating symlink $symlink to point to $new_target"

        # 更新软链接的源文件路径
        ln -sfn "$new_target" "$symlink"
    fi
done

echo "Symlink update completed."

将此脚本保存为 .sh 文件,然后拖放到目标目录中运行。

This post is licensed under CC BY 4.0 by the author.