我对以下问题得到了帮助: batch rename files with ids intact
这是如何重命名组中特定文件的一个很好的例子,但我想知道是否有类似的脚本我可以用来执行以下操作:
我可以使用与上述帖子中的内容类似的方法吗?
谢谢! JML
答案 0 :(得分:1)
是的,很容易,find。
find rootDir -name "myprefix_*"
这将为您提供rootDir
中以myprefix_
开头的所有文件和文件夹的列表。从那里,它是批量重命名的短暂跳转:
find rootDir -name "myprefix_*" | while read f
do
echo "Moving $f to ${f/myprefix_/}"
mv "$f" "${f/myprefix_/}"
done
编辑: IFS
按http://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html
编辑2: IFS
已移除,转而使用while read
。
编辑3:正如bos所指出的,如果您的Bash版本仍然不喜欢它,您可能需要将while read f
更改为while read -d $'\n' f
。