Apple 정품 아이폰 16 Pro 자급제, 화이트 티타늄, 256GB






블로그 내에서 다른 포스팅 검색하기기
검색어를 입력해주세요

오늘은 bash script를 작성하여 특정 시점으로부터 특정 시점까지의 변경된 파일을 복사하거나 삭제하는 방법에 대해 알아보겠습니다.


또한, 100MB 이상 등의 용량을 기준으로 큰 파일들을 찾아 복사하는 방법도 알아보겠습니다.
이런 것을 우리는 자동화 스크립트라고 합니다.
리눅스는 특히 이러한 자동화 스크립트를 작성하기 쉽도록 많은 도구를 제공합니다.
그중 하나가 bash script이겠죠?


script를 통해 업무를 자동화할 수 있다.

 

 

이전 특정 날짜로부터 현재까지 새로 생긴 파일들 복사하기



#!/bin/bash
# 현재 날짜와 하루 전 날짜 계산
current_date=$(date +%Y-%m-%d)
previous_date=$(date -d "$current_date -1 day" +%Y-%m-%d)

# 찾을 파일들이 있는 디렉토리 경로
src_dir="/tmp"

# 복사할 디렉토리 경로
dest_dir="/home/wonseok/new"

# 현재 날짜부터 하루 전까지 생성된 파일들을 찾아서 복사
find "$src_dir" -type f -newermt "$previous_date" ! -newermt "$current_date" -exec cp {} "$dest_dir" \;




위의 스크립트를 작성하여 실행하면 /tmp 디렉터리에서 어제날짜부터 오늘 날짜까지 새로 생성된 파일들만을 찾아 "/home/wonsoek/new" 경로에 복사합니다.
이런 스크립트를 사용하면 우리가 포착하지 못한 새로운 파일들을 골고루 찾아내어 사용할 수 있겠죠?
자, 다음은 어제 날짜가 아닌 특정 시점부터 특정 시점까지 수정된 파일을 찾아 삭제하는 예제를 확인해 보겠습니다.


find 명령어 설명

 

 

5일 전부터 3일 전까지 수정된 파일을 찾고 삭제하는 예제

 

#!/bin/bash

# 5일 전과 3일 전 날짜 계산
s_date=$(date -d "5 days ago" +%Y-%m-%d)
e_date=$(date -d "3 days ago" +%Y-%m-%d)

# 파일을 찾을 디렉토리 경로
dir="/tmp"

# 5일전부터 3일전까지 수정된 파일을 찾아서 삭제
find "$dir" -type f -newermt "$s_date" ! -newermt "$e_date" -delete

 



위의 예제 코드는 find 명령어를 사용하여 5일전부터 3일전까지 수정된 파일들을 찾고, -delete 옵션을 사용하여 해당 파일들을 삭제할 수 있습니다.
find는 많은 옵션을 가지고 있습니다.
이러한 다양한 옵션들을 조합하여 우리가 원하는 조건을 만들 수 있습니다.
흔히 리눅스에서 삭제는 rm으로 한다고 생각하지만 이러한 "-delete" 옵션으로도 삭제가 가능합니다.


ls -al 명령을 통해 용량 큰 파일들을 확인할 수 있다.

 

 

10일 전부터 5일 전까지 생성된 용량이 100MB를 넘는 파일을 복사하는 예제

 

#!/bin/bash

# 10일 전과 5일 전 날짜 계산
s_date=$(date -d "10 days ago" +%Y-%m-%d)
e_date=$(date -d "5 days ago" +%Y-%m-%d)

# 파일을 찾을 디렉토리 경로
dir="/tmp"

# 복사할 디렉토리 경로
dest_dir="/path/to/destination"

# 10일전부터 5일전까지 생성된 용량이 100MB를 넘는 파일을 복사
find "$dir" -type f -newermt "$s_date" ! -newermt "$e_date" -size +100M -exec cp {} "$dest_dir" \;



 

위의 예제 코드는 find 명령어를 사용하여 10일전부터 5일전까지 생성된 용량이 100MB를 넘는 파일들을 찾고, -exec cp {} "$dest_dir" \;를 사용하여 해당 파일들을 결과물 디렉터리로 복사합니다.
이러한 스크립트를 작성하여 내가 원하는 경로와 날짜 조건을 수정하여 bash 스크립트를 작성하면, 특정 파일들을 찾아 삭제하거나 복사할 수 있습니다.

 

자 오늘은 특정 시점과 시점 사이의 파일들을 삭제하거나 복사하는 방법에 대해 알아보았습니다.
또한 큰 용량 파일을 찾아 관리하는 방법도 알았으니 자동화 스크립트 작성하기 쉽겠죠?

반응형


살구엉덩이님의
글이 좋았다면 응원을 보내주세요!