最近需要把瑞芯微Android源码在git上进行版本管理,在Initial commit、push上传后,另建目录pull下来后编译失败,发现.gitignore分布在各个文件夹内(find . -name .gitignore | wc -l查询出来有1169个文件),有好多编译需要的文件被忽略了。故需要在初始化上传的时候,把.gitignore文件去掉然后全量上传,编译成功后再把.gitignore文件还原。
1、查找.gitignore文件个数
# find . -name .gitignore | wc -l
2、将所有.gitignore重命名加上.bak后辍
find . -name .gitignore -exec mv {} {}.bak \;
find--文件查找命令
.--要进行文件查找的目录
-name--要查找的文件的文件名
.ignore--要匹配的名称
-exec--对每个查找到的匹配项要执行的操作
mv--移动文件名令
{}--代表查找到的文件
.bak--对找到的文件加上bak后辍
\--分隔符
;--shell的语句分隔符
如果想直接删除文件可使用:find . -name "*wls-wsat*" -exec rm -rf {}
3、将所有.gitignore.bak还原为.gitignore
find . -name .gitignore.bak -exec rename 's/.gitignore.bak/.gitignore/' {} \;
先使用find来找到当前目录和子目录下的所有匹配文件,然后通过exec对每一个文件进行改名操作