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

posted @ 2024-04-26 22:29  lifeAddicted  阅读(14)  评论(0)    收藏  举报