Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Bash에서 X일/시간보다 오래된 파일 삭제 [예제]

이 문서에서는 지정된 날짜보다 오래된 파일을 삭제하는 방법을 보여줍니다. (또는 시간/분) 수동 또는 Bash 스크립트를 통해 자동으로. 예시가 포함되어 있습니다.

특정 일 수(또는 분 또는 시간)보다 오래된 파일을 제거하면 두 개의 Linux 명령(rm)을 사용합니다. 및 찾기 .

rm으로 파일 삭제

먼저, rm 명령. rm 명령은 제거하는 데 사용됩니다. Linux의 파일 및 디렉토리. 사용 방법에 대한 전체 기사는 다음과 같습니다.

Linux의 rm 명령 [예제 포함]

필터링된 파일 목록을 rm에 전달하기

다음 구성요소인 찾기 명령. 찾기 명령은 일련의 기준에 따라 파일을 찾는 데 사용됩니다. 이 경우 파일의 수명(수정된 이후 경과된 시간)입니다. 다음은 찾기에 대한 기사입니다. 명령:

Linux에서 명령 찾기 [유용한 예 포함]

그들을 합치기 – 예

찾기 사용 그리고 rm 함께:

find /path/to/files/* -mtime +7 -exec rm {} \;

무슨 일이야?

  • 찾기 /path/to/files 디렉터리에서 호출됩니다.
    • -mtime 옵션은 찾기에 전달됩니다. 값이 +7인 경우 전달됨 - 수정된 지 7일 이상 된 파일을 의미합니다.
    • 임원 옵션은 일치하는 각 파일에 대해 실행할 명령과 함께 find에 전달됩니다.
  • RM -exec에 의해 호출됩니다. 찾기 옵션
    • 찾기에 지정된 조건과 일치하는 모든 파일을 제거합니다.
    • 줄 끝에 있는 중괄호, 슬래시 및 세미콜론은 find 명령의 끝을 나타냅니다. 일치하는 각 파일에서 실행되어야 함

일이 아닌 시간, 분

시간 단위로 일 대신 분을 사용하려면 -mmin으로 대체할 수 있습니다. -mtime 대신 .

find /path/to/files/* -mmin +30 -exec rm {} \;

위의 예는 30분이 지난 파일을 삭제합니다.

스크립트로 만들기

이것을 입력하는 대신 스크립트로 만들 수 있습니다.

#!/bin/bash

find /path/to/files/* -mtime +7 -exec rm {} \;

위의 스니펫을 파일(deletescript.sh, 예) 다음을 실행하여 호출할 수 있습니다.

./deletescript.sh

어디서든 실행하려면 명령에 대한 별칭을 만들 수도 있습니다.

이전 파일 삭제 예약

지정된 간격으로 명령을 자동으로 실행하려면 crontab에 추가하세요. . 크론탭 파일은 Linux에서 사용자의 예약된 작업이 저장되는 위치이며 다음을 실행하여 편집할 수 있습니다.

crontab -e

위를 실행하면 crontab 편집기가 표시됩니다. 매일 스크립트를 실행하려면 파일에 다음을 추가하기만 하면 됩니다.

@daily find /path/to/files/* -mtime +7 -exec rm {} \;