天天看點

删除一年前檔案的腳本

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

66

67

68

69

70

71

72

73

74

<code>#!/bin/bash</code>

<code>#Description: delete files</code>

<code>#=====定義目前年份,月份以及檔案所在目錄=====#</code>

<code>currentYear=`</code><code>date</code> <code>+%Y`                                        </code>

<code>currentMonth=`</code><code>date</code>  <code>+%m |</code><code>awk</code> <code>-F</code><code>'0'</code> <code>'{print $2}'</code><code>`   </code>

<code>videodir=</code><code>/var/video</code>                                                    

<code>#======定義一個轉換函數,用于将月份縮寫轉換為數字表示========#</code>

<code>function</code> <code>month2num(){</code>

<code>case</code> <code>$file_month </code><code>in</code>

<code>Jan)</code>

<code>file_month=1</code>

<code>;;</code>

<code>Feb)</code>

<code>file_month=2</code>

<code>Mar)</code>

<code>file_month=3</code>

<code>Apr)</code>

<code>file_month=4</code>

<code>May)</code>

<code>file_month=5</code>

<code>Jun)</code>

<code>file_month=6</code>

<code>Jul)</code>

<code>file_month=7</code>

<code>Aug)</code>

<code>file_month=8</code>

<code>Sep)</code>

<code>file_month=9</code>

<code>Oct)</code>

<code>file_month=10</code>

<code>Nov)</code>

<code>file_month=11</code>

<code>Dec)</code>

<code>file_month=12</code>

<code>*)</code>

<code>echo</code> <code>"Oh,Are you kidding me?!"</code>

<code>exit</code> <code>1</code>

<code>esac</code>

<code>}</code>

<code>#=====定義上一年年份以及上一年的所有檔案清單=====#</code>

<code>lastYear=$[$currentYear-1]                                                                   </code>

<code>lastYearFiles=`</code><code>/bin/ls</code> <code>-l $videodir/ |</code><code>grep</code> <code>$lastYear |</code><code>awk</code> <code>-F</code><code>' '</code> <code>'{print $9}'</code><code>`</code>

<code>#===== 删除上一年的檔案,今天為2013年5月,則删除2012年5月之前的所有檔案(1-4月)=====#</code>

<code>for</code> <code>lastfile </code><code>in</code> <code>`</code><code>echo</code> <code>$lastYearFiles`                                    </code>

<code>do</code>

<code>file_month=`</code><code>/bin/ls</code> <code>-l $videodir/$lastfile  |</code><code>awk</code>  <code>-F</code><code>' '</code> <code>'{print $6}'</code><code>`</code>

<code>month2num</code>

<code>if</code> <code>[ $file_month -lt $currentMonth ]</code>

<code>then</code>

<code>rm</code> <code>-rf $videodir/$lastfile</code>

<code>fi</code>

<code>done</code>

<code>#=====删除非上一年以及非今年的所有檔案=====#</code>

<code>otherYearFiles=`</code><code>/bin/ls</code> <code>-l $videodir/ |</code><code>grep</code> <code>-</code><code>v</code> <code>$lastYear |</code><code>awk</code> <code>-F</code><code>' '</code> <code>'{print $9}'</code><code>`</code>

<code>for</code> <code>otherfile </code><code>in</code> <code>`</code><code>echo</code> <code>$otherYearFiles`</code>

<code>file_year_format=`</code><code>/bin/ls</code> <code>-l $videodir/$otherfile  |</code><code>awk</code>  <code>-F</code><code>' '</code> <code>'{print $8}'</code><code>|</code><code>wc</code> <code>-c`</code>

<code>if</code> <code>[ $file_year_format -</code><code>eq</code> <code>5 ]</code>

<code>rm</code> <code>-rf $videodir/$otherfile</code>

本文轉自 暗黑魔君 51CTO部落格,原文連結:http://blog.51cto.com/clovemfong/1197493,如需轉載請自行聯系原作者

繼續閱讀