我曾经有一台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_sunset
,r_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
和-regextype
向find
提供完整的表达式。然后调用-exec mv {} +
(注意+
符号)。