git管理代码时通常遇到空文件夹在git add时被遗漏的情况,这时我们可以在空文件夹下创建一个.gitkeep的空文件,再去git add 时就会发现空文件夹已经被添加,可是如果有很多个文件夹,尤其像是linux 根文件系统使用git管理时,子文件夹下可能还有空文件夹,这时就需要递归处理了,下面是递归处理的脚本内指令:
#! /bin/bash
dir=./
function touch_gitkeep() {
for file in `ls $1`
do
file_path=$1/$file
echo "filepath=$file_path"
if [ -d $file_path ]; then
if [ "`ls -A $file_path`" = "" ];then
echo "touch $file_path/.gitkeep"
touch $file_path/.gitkeep
else
touch_gitkeep $file_path
fi
fi
done
}
if [ $1 ];then
dir=$1
fi
echo "dir=$dir"
touch_gitkeep $dir
保存上面的shell指令到文件,并执行,执行不带参数时默认是在当前目录下递归处理所有子文件夹,执行时指定目录则在指定目录下递归处理所有子文件夹