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

时间:2018-03-27 21:15:23

标签: rename batch-processing symlink batch-rename ubuntu-17.10

我有一整套由符号链接到其他文件的目录(最初记录在mythtv中 - 通过mythlinks创建的符号链接)。我的mythdatabase死了但是由于mythlinks我仍然可以找出哪个文件是哪个。

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

  

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

     

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

这样目标文件将分别为GreatFilm.mpg和GreaterFilm.mpg。

有人可以帮忙吗?

谢谢你的帮助

仅在我的ubuntu 17.10上,rename命令没有选项-s / --symlink

1 个答案:

答案 0 :(得分:1)

使用

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

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

或使用

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

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