shell脚本实例
批量更新文件的修改时间
该脚本的背景是,在项目过程中,由于需要调整系统时间
导致很多源码文件的时间差异很大,make时需花费较多时间
因此该脚本意在自动将源码文件时间更新为当前系统时间
涉及的shell知识点有
#!/bin/bash
target="/target/dir"
if [ -n "$1" ]; then
target=$1
fi
echo "target dir: $target" # 使用默认目录/从参数获取目录
function touchFile
{
if [ -z "$1" ]; then
return 1 # no input file
fi
lastMod=`stat -c %X "$1"`
if [ $lastMod -gt $now ]; then # 若修改时间大于当前,修改为当前
touch -cm "$1"
fi
}
fileList=`ls -R $target | sed /:$/d` # 递归获取目标目录的中的所有目录和文件;并删除目录行
echo "list of files: $fileList"
echo "--------------------------------------------------------"
now=`date +%s`
for _file in $fileList
do
touchFile "$_file" # 更新文件修改时间
done

浙公网安备 33010602011771号