Shell脚本实现根据文件的修改时间来分类文件

 更新时间:2015年07月06日 09:34:05   投稿:junjie   我要评论
这篇文章主要介绍了Shell脚本实现根据文件的修改时间来分类文件,本文直接给出实现代码,需要的朋友可以参考下
#!/bin/bash

# exctute
# ./mod.sh file_type input_folder output_folder
# ./mod.sh *.txt /tmp /data/

# paramater count 
if [ ! $# -eq 3 ]; then
  echo "[ERROR] error paramater."
  exit
fi

# file type
file_type="${1}"

# input foloder
if [ -d "${2}" ]; then 
  folder="${2}"
else
  echo "[ERROR] input folder is not exsit."
  exit 
fi

# output folder
if [ -d "${3}" ]; then
  output="${3}"
else
  echo "[ERROR] output folder is not exsit."
  exit
fi

# search file
find ${folder} -name "${file_type}" | while read filename ; 
do
  # file type
  file_type=`echo ${filename##*.}`

  # file size
  file_size=`stat "${filename}" | sed -n '2,1p' | awk '{print $2}' `
  # file modify time
  file_modify=`stat "${filename}" | sed -n '6,1p' | awk '{print $2, $3}' | sed -e 's/[-: ]//g' `

  # output folder 
  path="${output}/${file_modify:0:6}"
  if [ ! -d "${path}" ]; then
    mkdir -p ${path}
    echo "folder(${path}) is created . "
  fi

  # new file full name 
  new_file_name=`echo ${path}/${file_modify}_[${file_size}].${file_type}`

  if [ ! -f "${new_file_name}" ]; then
    mv "${filename}" "${new_file_name}"
  else
    echo "file(${new_file_name}) is exsit, can not be removed. "
  fi
done
echo "finished !"
exit

相关文章

  • 零基础入门篇之Linux及Arm-Linux程序开发笔记

    零基础入门篇之Linux及Arm-Linux程序开发笔记

    这篇文章主要介绍了零基础入门篇之Linux及Arm-Linux程序开发笔记,需要的朋友可以参考下
    2015-10-10
  • 如何在Linux下修改Mysql的用户(root)密码

    如何在Linux下修改Mysql的用户(root)密码

    这篇文章主要介绍了如何在Linux下修改Mysql的用户(root)密码,分两种情况:第一种当拥有原来的mysql的root密码,第二种情况忘记原来的mysql的root的密码,需要的朋友可以参考下
    2015-08-08
  • Shell脚本监控服务器在线状态和邮件报警的方法

    Shell脚本监控服务器在线状态和邮件报警的方法

    这篇文章主要介绍了Shell脚本监控服务器在线状态和邮件报警的方法,使用的是ping命令来监控,需要的朋友可以参考下
    2014-03-03
  • Linux链接命令的实例详解

    Linux链接命令的实例详解

    这篇文章主要介绍了Linux链接命令的实例详解的相关资料,希望通过本文大家能掌握Linux链接命令的使用方法,需要的朋友可以参考下
    2017-08-08
  • shell for循环与数组应用介绍

    shell for循环与数组应用介绍

    先举一个例子,shell for循环读取一个文件,把每一行赋值给一个数组的变量,然后介绍shell数组的相关知识,有需要的朋友可以参考下
    2013-02-02
  • 基于shell的if和else详解

    基于shell的if和else详解

    下面小编就为大家带来一篇基于shell的if和else详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Shell编程之变量数值计算方法示例

    Shell编程之变量数值计算方法示例

    这篇文章主要给大家介绍了关于Shell编程教程之变量数值计算的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • shell写的告警次数控制及恢复示例代码

    shell写的告警次数控制及恢复示例代码

    自己写的一个监控脚本,发现告警短信次数未控制时,垃圾短信N多。经过思考,做了个简单的控制,同一故障只发送二次。之后不再发送。恢复后发送恢复短信
    2013-02-02
  • shell递归输出文件名和目录名的方法

    shell递归输出文件名和目录名的方法

    今天小编就为大家分享一篇shell递归输出文件名和目录名的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Shell 编程:Bash空格的那点事

    Shell 编程:Bash空格的那点事

    空格,一个看不见的字符,很不起眼,也正由于不起眼,很多人经常忽略它,导致代码出错,却还找不着北。这里,我们来聊聊bash中空格的那点事
    2015-01-01

最新评论