【发布时间】:2014-07-07 03:22:30
【问题描述】:
我想更改特定类型文件的文件名。它应该递归运行。 我几乎明白了,但不知道如何使用参数 {}(绝对路径)。
find $PWD -type f -name '*.jpg' -exec echo " {} " \;
例如,我想使用 reg 更改扩展名。表达式而不是命令重命名等。有时我需要新名称才能将其传递给函数,因此重命名在这里不适用。应该可以使用参数,例如使用参数 $each:
for each in /* do echo "${each\./\}.png" done
如何在参数 {} 上应用正则表达式,例如:“${each \ . / \ }.png”?
【问题讨论】:
-
我已经调查了您的问题,但遇到了一些奇怪的问题。我尝试过类似
find $PWD -type f -name '*.jpg' -exec basename {} .jpg \;的方法,它返回的文件名不带扩展名。但是,当我尝试find $PWD -type f -name '*.jpg' -exec echo $(basename {} .jpg).png \;时,它就像我写了echo {}.png一样工作。
标签: regex linux find command exec