[LINUX] π find λͺ λ Ή mtime/mmin μ΅μ +n, -n κ°λ μ 리
리λ μ€ νμμ€ν¬ν
리λ μ€μμ νμΌμ μκ° μ 보(Timestamps)λ₯Ό κΈ°λ‘νλλ° inode λΌλ κ³³μ μ μ₯μ΄ λλ€.
inodeμ μ μ₯λλ μκ°μ 보λ ctime, mtime, atimeμ΄ μ‘΄μ¬νλ€.
$ stat [νμΌλͺ
]
atime (access time, μ κ·Ό μκ°)
atimeμ νμΌμ μ κ·Όν μκ°μ λνλΈλ€.
νμΌμ open ν λλ§λ€ κ°±μ μ΄ λλ©° vi, cat λͺ λ ΉμΌλ‘ νμΌ νμΈμ atimeμ κ°μ΄ λ³νλ€.
$ ls -lu
mtime (modification time, μμ μκ°)
νμΌμ λ΄μ©μ΄ μμ λ λ mtime μκ°μ΄ λ³νλ€.
$ ls -l
ctime (change time, λ³κ²½ μκ°)
inodeμ κ° (νμΌ μμ±, κΆν, ν¬κΈ° λ±)μ΄ λ³κ²½λλ©΄ ctimeμ΄ κ°±μ λλ€.
$ ls -lc
find νμμ€ν¬ν μ΅μ
λͺμΌμ΄ μ§λ λ‘κ·Έ νμΌλ€μ μ°Ύμ μλ μμ ν λ κ°μ₯ λ§μ΄ μ°μ΄λ μ΅μ μ΄ λ°λ‘ νμμ€ν¬ν μ΅μ μ΄λ€.
λ€λ§, κ°λ μ΄ κ΅μ₯ν λν΄νκ³ μ¬μ©νκΈ° κΉλ€λ‘μ μ λλ‘ μ 리ν΄λ³΄λ μκ°μ κ°μ Έλ³΄μ.
νμμ€ν¬ν μ΅μ
λΆ λ¨μλ‘ μκ°λ μΆκ°λ‘ find λͺ λ Ήμ΄μμ μ¬μ©ν μ μλ€.
μ΅μ | μμ½ |
-mmin | νμΌμ λ°μ΄ν°κ° λ§μ§λ§μΌλ‘ μμ λ μκ° (λΆ μ§μ ) |
-mtime | νμΌμ λ°μ΄ν°κ° λ§μ§λ§μΌλ‘ μμ λ λ μ§μ μκ° (μΌ μ§μ ) |
-amin | νμΌμ λ°μ΄ν°μ λ§μ§λ§μΌλ‘ μ‘μΈμ€ ν λ μ§μ μκ° (λΆ μ§μ ) |
-atime | νμΌμ λ°μ΄ν°μ λ§μ§λ§μΌλ‘ μ‘μΈμ€ ν λ μ§μ μκ° (μΌ μ§μ ) |
-cmin | νμΌ λ°μ΄ν° λ° μνκ° λ§μ§λ§μΌλ‘ μμ λ μκ° (λΆ μ§μ ) |
-ctime | νμΌ λ°μ΄ν° λ° μνκ° λ§μ§λ§μΌλ‘ μμ λ λ μ§μ μκ° (μΌ μ§μ ) |
find -mtime n κ°λ μ΅νκΈ°
νΉμ κΈ°κ°μ μμ±, λ³κ²½λ νμΌ λͺ©λ‘μ μ‘°ννκ³ μΆμ λ find λͺ λ Ήμ΄μμ -mtimeμ΅μ μ νμΌλͺ μ μλ λ μ§κ° μλλΌ νμΌμ νμμ€ν¬νλ‘ νμΌμ κ²μνλ€.
κΈ°λ³Έ μ¬μ©λ²μ find -mtime n (μΌμ)λ₯Ό μ§μ νλλ° (nμΌ μ = n x 24μκ°μ )
μ΄ n(μΌμ) κ³μ°λ² κ³Ό ννλ²μ΄ μ‘°κΈ κΉλ€λ‘λ€.
μΌλ¨ μΌμ ννμ λμΆ© μ 리νμλ©΄ λ€μκ³Ό κ°λ€.
# λ§μΌ νμ¬μκ°μ΄ 10μ 10μΌ μ΄λΌκ³ κ°μ νλ€λ©΄,
$ find -mtime -3 # 3μΌ(72μκ°)μ ~ νμ¬μκ° -> 10.7 ~ 10.10
$ find -mtime 3 # 4μΌ(96μκ°) μ ~ 3μΌ(72μκ°)μ κΉμ§ -> 10.6 ~ 10.7
$ find -mtime +3 # 4μΌ(96μκ°)μ λ³΄λ€ κ³Όκ±° -> ~ 10.6
λͺ λ Ήμ΄μμ λ³Όμ μλ―μ΄ nμ΄ 3 μ΄λΌκ³ ν΄μ λ°λ‘ 3μΌμ μ΄ μλλΌ 24μκ°μ΄ μΆκ° λ²μμ μΌλ‘ κ³μ°λ¨μ λ³Ό μ μλ€.
μ΄λ 리λ μ€μμ μκ°μ μ§μ ν΄μ κ²μν λλ κ³ μ λ λ μ§μ μκ° κ°μΌλ‘ μ¬μ©ν μ μκΈ° λλ¬Έμ΄λ€.
λͺ λ Ήμ΄λ₯Ό μννλ μ§κΈμ μκ°μ κΈ°μ€μΌλ‘ νμμ€ν¬νμ 24μκ° λ¨μλ‘λ§ κ²μμ ν μ μλ€.
μλ₯Ό λ€μ΄,
"2021λ 1μ 1μΌ νμΌμ μ°ΎμλΌ!" λ λΆκ°λ₯νκ³ ,
"μ§κΈ μκ°μ κΈ°μ€μΌλ‘ 24μκ° μ μ νμΌμ μ°ΎμλΌ" λ‘ λͺ λ Ήμ μ΄νν΄μΌ λλ€.
# 4μΌ μ λΆν° 2μΌ μ κΉμ§ κ°±μ λ νμΌ λͺ©λ‘μ νμ
$ find . -name "*.log" -mtime -4 -mtime +1 -print
μκ° λ²μ n μ 리
μμ μ½λλ₯Ό λ΄λ νκΉλ¦°λ€. λνλ‘ λ³΄κΈ° μ½κ² μ 리ν΄λ³΄μλ€.
4μΌμ ~ 2μΌμ λ²μλ₯Ό μμΈν μ΄ν΄λ³΄λ -4μ +1 μ λͺ μν΄μ£Όλ©΄ λ²μκ° μκΉμ λ³Ό μ μλ€.
β μκ°λ¨μ (mtime , ctime , atime)
μ§μ λ nμ«μ x 24 λ₯Ό κΈ°μ€μκ°μΌλ‘ μ νκ³ ,
κΈ°μ€μκ°μμ 24μκ° κ³Όκ±° μκ°κΉμ§λ₯Ό μκ°λ²μλ‘ μ§μ νλ€.
- λΆνΈκ° μμΌλ©΄ μκ° λ²μκ° κ²μμκ°
- 0 : -24h ~ νμ¬
- 1 : -48h ~ -24h
- 2 : -72h ~ -48h
- + λ©΄ μκ°λ²μλ³΄λ€ κ³Όκ±° μκ°μ΄ λμ λ²μκ° κ²μμκ°
- +0 : κ³Όκ±° ~ -24h
- +1 : κ³Όκ±° ~ -48h
- +2 : κ³Όκ±° ~ -72h
- - λ©΄ κΈ°μ€μκ°λΆν° νμ¬κΉμ§ λμ λ²μκ° κ²μμκ°
- -0 : μμ
- -1 : -24h ~ νμ¬
- -2 : ~48h ~ νμ¬
β λΆλ¨μ (mmin, cmin, amin)
μ§μ λ μ«μλ₯Ό κΈ°μ€ λΆμΌλ‘ μ νκ³
- λΆνΈκ° μμΌλ©΄ λΆ λ²μκ° κ²μμκ°
- 1 : 1m μ μ λ³κ²½λ νμΌ κ²μ
- 2 : 2m μ μ λ³κ²½λ νμΌ κ²μ
- + λ©΄ κΈ°μ€λΆμ κ³Όκ±° μκ°μ΄ λμ λ²μκ° κ²μμκ°
- +1 : κ³Όκ±° ~ -1m
- +2 : κ³Όκ±° ~ -2m
- - λ©΄ κΈ°μ€λΆλΆν° νμ¬κΉμ§κ° λμ λ²μκ° κ²μμκ°
- -1 : -1m ~ νμ¬
- -2 : -2m ~ νμ¬
find -mtime n μμ
find -mtime n (μΌμ)μμ 'nμΌ = n*24μκ°' μ΄λ€ λ¬λ ₯μμ μΌμκ° μλλ€.
- find -mtime -2 : 2μΌ(48μκ°) μ΄λ΄μ μμ λ νμΌ (κΈ°μ€μμ νμ¬κΉμ§κ° κ²μ λμ)
- find -mtime 2 : 3μΌ(72μκ°) ~ 2μΌ(48μκ°) μ¬μ΄μ μμ λ νμΌ (μ«μ μμ +, - λΆνΈκ° μμΌλ©΄ μκ° λ²μκ° κ²μ λμ)
- find -mtime +2 : 3μΌ(72μκ°) λ³΄λ€ κ³Όκ±°μΈ λ³΄λ€ μ΄νμ μμ λ νμΌ (κΈ°μ€μμ κ³Όκ±° μκ° μ μ²΄κ° κ²μ λμ)
-mtimeμ΅μ μ -,+ λΆνΈμ λ°λΌμ κ·Έ μλ―Έκ° λ¬λΌμ§λ―λ‘ νμ€ν μμ§ν΄μ μ¬μ©νμ.
# νμ¬ λ μ§ νμΈ.
$ date
2015λ
10μ 23μΌ 2μ 36λΆ.
$ find -name "*.log" -mtime -2 -exec ls -lrt {} \;
# -mtimeμ΅μ
-2 : 2μΌ(48μκ°) ~ νμ¬
# νμ¬ λ μ§κ° 10μ 23μΌ 2μ 36λΆ μ΄λ―λ‘, 10μ 21μΌ 2μ 36λΆ ~ νμ¬μκ° μ¬μ΄μ νμΌ μ‘°ν.
$ find -name "*.log" -mtime 2 -exec ls -lrt {} \;
# -mtimeμ΅μ
2 : 3μΌ(72μκ°) ~ 2μΌ(48μκ°)
# νμ¬ λ μ§κ° 10μ 23μΌ 2μ 36λΆ μ΄λ―λ‘, 10μ 20μΌ 2μ 36λΆ ~ 10μ 21μΌ 2μ 36λΆ μ¬μ΄μ νμΌ μ‘°ν.
$ find -name "*.log" -mtime +2 -exec ls -lrt {} \;
# -mtimeμ΅μ
+2 : κ³Όκ±° ~ 3μΌ(72μκ°)
# νμ¬ λ μ§κ° 10μ 23μΌ 2μ 36λΆ μ΄λ―λ‘, 10μ 20μΌ 2μ 36λΆ μ΄μ μ νμΌ μ‘°ν.
$ find -name "*.log" -mtime +1 -mtime -4 -exec ls -lrt {} \;
# -mtimeμ΅μ
+1 : 2μΌ(48μκ°) μ΄μ μ μμ±, λ³κ²½λ νμΌ μ‘°ν
# -mtimeμ΅μ
-4 : 4μΌ(96μκ°) μ΄λ΄μ μμ±, λ³κ²½λ νμΌ μ‘°ν
# νμ¬ λ μ§κ° 10μ 23μΌ 2μ 36λΆ μ΄λ―λ‘
# -4(10μ19μΌ 2μ 36λΆ) ~ +1(10μ 21μΌ 2μ 36λΆ) μ¬μ΄μ νμΌ μ‘°ν.
$ find /home/service/*.* -mtime +7 -exec rm -f {} \;
# μμ λμ§ 8μΌ μ΄μλ λͺ¨λ νμμ νμΌλ€ μμ
find -mmin n μμ
μ£ΌκΈ°μ μΌλ‘ νμΌμ΄ μμ± λμ΄μΌ νλ κ³³μμ νμΌμ μ‘΄μ¬ μ¬λΆ νμΈ ν λ μ¬μ©νλ©΄ μ’λ€.
$ find -mmin -1 μ΄λ° μμΌλ‘ 1λΆ μμ κ°±μ λ νμΌμ΄ μλμ§ μ‘΄μ¬ μ¬λΆλ₯Ό νμΈ
# νμ¬ λ μ§ νμΈ.
$ date
2021λ
1μ 10μΌ 17μ 40λΆ
$ find -name "*.log" -mmin 7 -exec ls -lrt {} \;
# 7λΆμ μ΄ λμ.
# 2021λ
1μ 10μΌ 17μ 33λΆ νμΌλ€μ΄ μ‘°ν (7λΆμ μ λ³κ²½λ νμΌμ΄ μλ μ§ κ²μ)
$ find -name "*.log" -mmin +7 -exec ls -lrt {} \;
# 7λΆμ λ³΄λ€ κ³Όκ±°κ° λμ
# κ³Όκ±° μκ° ~ 2021λ
1μ 10μΌ 17μ 32λΆ νμΌλ€μ΄ μ‘°ν (μμ λμ§ 7λΆμ΄ λμ νμΌ)
$ find -name "*.log" -mmin -7 -exec ls -lrt {} \;
# 7λΆμ μμ νμ¬κΉμ§ λμ
# 2021λ
1μ 10μΌ 17μ 34λΆ ~ 2021λ
1μ 10μΌ 17μ 40λΆ νμΌλ€μ΄ μ‘°ν (μμ λμ§ 7λΆμ΄ λ νμΌ)
daystart μ΅μ
daystart μ΅μ μ μ§μ νλ©΄ ν루μ κΈ°μ€μ 0μλ‘ μ€μ νλ€.
λ¬λ ₯ μΌμ λ¨μλ‘ λ²μ μ§μ νλ €λ κ²½μ°μ μ΄ μ΅μ μ μ¬μ©νλ©΄ λλ€.
μλ₯Ό λ€μ΄, νμ¬ 12 μ 24 μΌ 03μ 00λΆμ κΈ°μ€μΌλ‘ 보면 λ€μκ³Ό κ°λ€.
# 3 μΌμ ~ νμ¬ (12 μ 24 μΌ 24μ 00 λΆ ~ 72 μκ° μ )
$ find ./ -daystart -mtime -3
# 3 μΌ μ (12 μ 21 μΌ 24μ 00 λΆ ~ 24 μκ° μ )
$ find ./ -daystart -mtime 3
# 3 μΌμ ~ κ³Όκ±° (12 μ 21 μΌ 24μ 00 λΆ ~ κ³Όκ±°)
$ find ./ -daystart -mtime +3
μμμ μλλ‘ μ§μ λ κ°λ₯νλ€.
# ν루μ λ°(12 μκ°) μ κΉμ§ (νμ¬ μκ° ~ 12 μκ° μ )
$ find ./ -mtime -0.5
# μ°Έκ³ μλ£
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ooa1769&logNo=220521238103
https://egg.pe.kr/140