2017년 2월 20일 월요일

특정 기간에 수정된 파일 찾기 및 복사.

장애 시점에 생성된 파일 찾기.


특별한 내용은 없는데 할 때마다 문서를 찾아야 하는 나쁜 머리를 위해서 기록해둠.

1. find.sh

   코드로 내용은 대체.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/sh
 
#if [ "$#" -eq 1 ] || [ "$#" -eq 2 ]; then
#   echo "$0 $1 $2"
#   touch -t $1 ./startdatetime.noop
#   if [ "$#" -eq 2 ]; then
#       touch -t $2 ./enddatetime.noop
#       find ./ -newer ./startdatetime.noop -a ! -newer ./enddatetime.noop
#   else
#       find ./ -newer ./startdatetime.noop
#   fi
#   rm ./startdatetime.noop
#   if [ "$#" -eq 2 ]; then
#       rm ./enddatetime.noop
#   fi
#   exit 0
#fi
 
recursive_mode=false
enddatetime=$(date +%Y%m%d%H%M.%S)
touch -t $enddatetime ./enddatetime.noop
 
function usage(){
    echo "findr.sh [-r] 200710282133.24 [201502102359.59]"
    echo "          -r : recursive mode (optional)"
    echo "              200710282133.24 : startdatetime (necessary)"
    echo "              [201502102359.59] : enddatetime (optional)"
    echo "  If the end time parameter is omitted, the current time is the end time."
    exit 1
}
 
while getopts ":r :s: :e:" opt; do
    case $opt in
        r)
            echo "-r - Recursive Mode Enable"
            recursive_mode=true
            ;;
        \?)
            echo "Invalid command."
            exit 1
            ;;
    esac
done
 
if [ "$recursive_mode" = true ]; then
    if [ "$#" -ne 2 ] && [ "$#" -ne 3 ]; then
        usage
    else
        touch -t $2 ./startdatetime.noop
        if [ "$#" -eq 3 ]; then
            touch -t $3 ./enddatetime.noop
        fi
        find . -newer ./startdatetime.noop -! -newer ./enddatetime.noop |egrep -"^(./enddatetime.noop)"
    fi
else
    if [ "$#" -ne 1 ] && [ "$#" -ne 2 ]; then
        usage
    else
        touch -t $1 ./startdatetime.noop
        if [ "$#" -eq 2 ]; then
            touch -t $2 ./enddatetime.noop
        fi
        find . -maxdepth 1 -newer ./startdatetime.noop -! -newer ./enddatetime.noop |egrep -"^(./enddatetime.noop)"
    fi
fi
cs

2. cp.

   찾은 파일들을 어딘가로 옮기고 싶을 때는 다음과 같이 한다.

1
mv `find.sh 201702161500.00 201702161505.00` ./../queue/
cs

댓글 없음:

댓글 쓰기