유닉스에서 연도를 기준으로 모든 파일을 삭제하는 방법은 무엇입니까?

유닉스에서 연도를 기준으로 모든 파일을 삭제하는 방법은 무엇입니까?

2018년에 생성된 디렉터리의 모든 파일을 삭제해야 합니다. 이를 수행하려면 어떤 명령을 사용할 수 있습니까?

답변1

사용 find -newermt옵션:

find /path/to/directory -type f -newermt 2018-01-01 ! -newermt 2019-01-01 -print

또는 덜 생각하려면:

y=2018
find /path/to/directory -type f -newermt $y-01-01 ! -newermt $((y+1))-01-01 -print

결과에 만족하면 -print으로 변경하세요 .-delete

답변2

다음과 같은 스크립트:

DIR="$1"
for f in "$DIR"/*
do
    FileDate=$(stat -c %y "$f")
    if [[ "${FileDate:0:4}" = "2018" ]] ; then
        rm "$f"
    fi
done

스크립트를 호출하고 디렉토리 이름을 전달합니다. 예:kill2018 /home/me/Documents

관련 정보