将符号链接的目标批量重命名为符号链接的名称

Batch rename target of symlinks to name of symlink

我有一整套由指向其他文件的符号链接组成的目录(最初记录在 mythtv - 通过 mythlinks 创建的符号链接)。我的神话数据库死了,但由于神话链接,我仍然可以找出哪个文件是哪个。

我想(如果可能的话批量)将符号链接的目标文件重命名为符号链接的名称,即:

Mar 27 22:12 GreatFilm.mpg -> 123.mpg

Mar 27 22:12 GreaterFilm.mpg -> 456.mpg

因此目标文件将分别为 GreatFilm.mpg 和 GreaterFilm.mpg。

有人可以帮忙吗?

感谢您的帮助

仅供参考,我的 ubuntu 17.10 重命名命令没有选项 -s / --symlink

使用

find . -type l -name '*.mpg' -exec bash -c '
    d=$(readlink "")
    echo unlink ""
    echo mv "$d" ""
' -- {} \;

当输出看起来不错时删除 2 echo 命令

或使用 :

find . -type l -name '*.mpg' -exec bash -c '
    echo unlink ""
    rename -n 's/(.*)/readlink /e ""
' -- {} \;

当输出看起来不错时删除 echo 命令和 -n