如何在MacOS中递归重命名文件夹和文件



我曾经有一台debian机器,我记得使用过:

shopt -s globstar
rename 's/changethis/tothis/' **

,但也许是因为我的bash版本(版本3.2.48(1))不是最新的,所以我得到了:

-bash: shopt: globstar: invalid shell option name
-bash: rename: command not found

在OS X中递归重命名文件和文件夹会有什么不同的方法?(10.8.5)


我想重命名每个文件夹和文件中包含字符串sunshine的文件和sunset。因此,文件: post_thumbnails_sunshine将成为post_thumbnails_sunsetr_sunshine-new将成为r_sunset-new等。

 find . -depth -name "*from_stuff*" -execdir sh -c 'mv {} $(echo {} | sed "s/from_stuff/to_stuff/")' ;

这应该做技巧:

find . -name '*sunshine*' | while read f; do mv "$f" "${f//sunshine/sunset}"; done

*专门重命名的文件使用-type f,用于目录的目录使用-type d

您可以按照注释中的@mbratch在 find命令中使用正则表达式。您可以使用-regex-iregex-regextypefind提供完整的表达式。然后调用-exec mv {} +(注意+符号)。

相关内容

  • 没有找到相关文章