你好,我的目录中有以下文件:
ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver
ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat
我需要重命名如下:
ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver
ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat
你能告诉我一个可以做到这一点的一行代码吗?
答案1
rename 可用于批量重命名文件
以你的例子来说:
$ rename -v 's/^ewPrd/ewPpt/' *ActiveStores*
ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver renamed as ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver
ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat renamed as ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat
答案2
如果您要重命名多个文件,请执行以下操作:
for f in *Prd*;do mv "$f" "${f/Prd/Ppt}"; done
这将遍历Prd
当前目录中名称包含的所有文件并重命名它们。它利用了 bash 的优势(我假设您正在使用 bash)字符串替换能力。