linux 批量修改文件时间

文件名为2021xxxx.log,如何根据文件名批量修改文件创建时间,并随机一个文件编辑时间,求shell下的实现

阅读 2.3k
1 个回答

大部分 linux 系统并不存在创建时间。

随机时间可以这么写:

day_of_month=(0 31 28 31 30 31 30 31 31 30 31 30 31)
for file in $(ls *.log); do
    year=$(( 1901 + $RANDOM % 120 ))
    month=$((RANDOM % 12 + 1))
    day=$((RANDOM % ${day_of_month[$month]} + 1))
    month=0$month
    day=0$day
    date=$year${month:(-2):2}${day:(-2):2}
    touch $file -d $date
    echo "Rand date for $file: $date"
done

按文件名改时间可以这么写:

for file in $(ls *.log); do
    touch $file -d ${file%%.log}
    echo "Touched $file: ${file%%.log}"
done
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题