Linux/Solarisマシンの多くのディレクトリとファイルの名前を変更する必要があります。それらのディレクトリ/ファイルを指す多くのリンクがあります。
DOMAIN.city.country
したがって、最初に、 名前を変更するすべてのディレクトリ(DOMAIN.type.country
など)とそれらのリンクを見つけるために、次のスクリプトを作成します。
スクリプトは、ファイルファイルからノードの新旧の名前を取得しinfo.file
ます。各行の最初のフィールドは古いディレクトリ名を表し、2番目のフィールドは新しいディレクトリ名を表します。
ファイル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
新しいディレクトリへの現在のリンクを自動的に再作成するための最良の解決策をアドバイスしてください。