在git中批量重命名
- 2011-09-09更新:为《学习Bash(第二版)》PDF手工加入书签。
- 2011-09-20更新:加入《Learning.The.Bash.Shell.3rd》下载。
有一批形如 map_XXX.XXX
的文件,要改名为 map1_XXX.XXX
。如果使用其他改名工具改名,git 会认为是删除了这些文件,并要求将改名后的文件重新添加到版本库,这会无端的增加版本库的大小。
最好的办法当然是用git mv
来处理。鼓捣了半小时,写了我的第一行BASH代码:
1for i in map*{jpg,xml};do git mv $i "map1${i:3}";done
说明:
map*{jpg,xml}
是只处理jpg和xml文件;$i
是引用循环中的文件名,和${i}
的作用相同;${i:3}
返回文件名的第3至最后一个字符的字符串。
BASH真的很好玩,推荐两本书:
《高级 Bash 脚本编程指南》(Advanced Bash-Scripting Guide)
上面这本书扫描的很不清晰,很多代码看不清,最好是对照英文版来看,下面是英文版下载:
- 文章ID:1236
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/multi-rename-in-git/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。