Den*_*ote 13 shell directory regular-expression rename
我有一个媒体服务器,其中有一个名为Series
. ( /media/Expansion2/Series/
)
在里面,我有(惊喜!)电视剧。这些只是节目名称,例如,/media/Expansion2/Series/The Big Bang Theory/
在每个节目的文件夹内(这就是问题所在)我有季节文件夹。我目前混合了以下两种约定(可能还有更多约定):
/media/Expansion2/Series/The Big Bang Theory/The Big Bang Theory Season 1
/media/Expansion2/Series/The Big Bang Theory/Season 2
最后,我想将所有文件夹重命名为Season #
.
作为正则表达式,我可能会说类似的话 s/.*(Season \d)/$1
仅适用于文件夹,不适用于文件。我可能还应该提到这是用于大约 50 多个显示子文件夹,因此它需要从/media/Expansion2/Series/
级别开始并查看每个系列:)
use*_*own 13
在 Debian 和衍生产品(包括 Ubuntu)上:
find /media/Expansion2/Series/ -type d -exec rename -n 's/.*(Season \d)/$1/' {} ";"
Run Code Online (Sandbox Code Playgroud)
该rename
命令是 Perl 包的一部分。它不是由其他发行版提供的,而是提供了标准的 Linuxrename
在这里没有用命令。
如果rename -n
(-不是真的)显示了它想要做的事情,并且这对您来说没有问题,请省略 -n 并使其发生。