我需要重命名我的 Linux/Solaris 机器中的很多目录和文件。有许多指向这些目录/文件的链接。
因此,首先我创建以下脚本以查找我要重命名的所有目录(例如DOMAIN.city.country
等 DOMAIN.type.country
)及其链接。
该脚本从文件文件中获取节点的旧名称和新名称info.file
。每行的第一个字段代表旧目录名称,第二个字段代表新目录名称。
文件find_and_recreate_link_to_new_dir.ksh
while read -r line ; do
[[ -z $line ]] && continue
name_old_dir=` echo $line | awk '{print $1}' `
name_new_dir=` echo $line | awk '{print $2}' `
find / -type l -exec ls -l 2>/dev/null '{}' \; | perl -ne'BEGIN { $str = shift(@ARGV); } print if /\Q$str\E/; ' $name_old_dir
done < /tmp/test/info.file
文件/tmp/test/info.file
DOMAIN.city.country DOMAIN.world.country
DOMAIN.city1.country DOMAIN.world1.country
...
当我运行我的脚本时,我得到了这个输出
lrwxrwxrwx 1 root root 19 Mar 15 11:22 /var/test/info.domain2.com -> DOMAIN.city.country
lrwxrwxrwx 1 root root 19 Mar 15 11:22 /var/test/info.domain.com -> DOMAIN.city.country
lrwxrwxrwx 1 root root 19 Mar 15 11:22 /var/test/info.domain1.com -> DOMAIN.city.country
lrwxrwxrwx 1 root root 5 Mar 15 11:57 /var/test/DOMAIN.type.country -> mkdir
lrwxrwxrwx 1 root root 19 Mar 15 11:58 /var/test/info.tyep.com -> DOMAIN.type.country
...
现在我需要在这个脚本中添加一个部分,该部分将重新创建指向新目录的当前链接。例如
/var/test/info.domain2.com -> DOMAIN.world.country
请告知自动重新创建指向新目录的当前链接的最佳解决方案。