找出linux系统中新修改的文件的方法

发布时间:2019-12-26编辑:脚本学堂
介绍:在Linux系统下, 找出新修改的文件,并且,复制到 合适的位置。#注意:每次修改代码前,在/var/www/html/jitong360temp 下面 touch time.txt

介绍:在linux系统下, 找出新修改的文件,并且,复制到 合适的位置。
#注意:每次修改代码前,在/var/www/html/jitong360temp 下面 touch time.txt

[root@bogon jitong360temp]# pwd
/var/www/html/jitong360temp
[root@bogon jitong360temp]# touch time.txt

[root@bogon html]# pwd
/var/www/html
[root@bogon html]# chmod +x find-alter-files.sh
[root@bogon html]# ./find-alter-files.sh jitong360temp

[root@bogon html]# gedit find-alter-files.sh

复制代码 代码如下:

#!/bin/sh
#用shell写了个递归遍历目录脚本,本脚本实现递归遍历指定目录,打印目录下的文件名(全路径)。

#注意:每次修改代码前,在/var/www/html/jitong360temp 下面 touch time.txt

#存放修改后的文件    /root/var/www/html/jitong360temp
#newerdir="/root"

function scandir() {
    local cur_dir parent_dir workdir newerdir
    newerdir="/root"
    workdir=$1
    cd ${workdir}
    if [ ${workdir} = "/" ]
    then
        cur_dir=""
    else
        cur_dir=$(pwd)
    fi
 
    for dirlist in $(ls ${cur_dir})
    do
        if test -d ${dirlist};then
            cd ${dirlist}
            scandir ${cur_dir}/${dirlist}
            cd ..
        elif test -f ${dirlist};then
            #在Linux系统下, 找出新修改的文件,并且,复制到 合适的位置
            #注意:每次修改代码前,在/var/www/html/jitong360temp 下面 touch time.txt
            newer=`find ${dirlist} -newer /var/www/html/jitong360temp/time.txt`
            if [ "${newer}" == "${dirlist}" ];then
                tmp_dir=$(pwd)
                mkdir -p ${newerdir}${tmp_dir} 2> /dev/null
                cp ${newer} ${newerdir}${tmp_dir}
            fi

        fi
    done
}
 
if test -d $1
then
    scandir $1
elif test -f $1
then
    echo "you input a file but not a directory,pls reinput and try again"
    exit 1
else
    echo "the Directory isn't exist which you input,pls input a new one!!"
    exit 1
fi