AWS

[AWS cli] s3 파일/디렉터리 삭제

비번변경 2022. 1. 25. 19:01

2021.08.25 - [AWS cli] s3 파일/디렉터리 다운로드

위 글에 이어서, 이 글에서는 s3에 업로드된 파일 또는 디렉터리를 삭제하는 방법에 대해 정리해둔다.

 

사전 조건

1. aws cli 설치

2. s3 읽기, 쓰기 권한

 

aws s3 rm

aws s3의 하위 명령어는 리눅스의 파일/디렉터리 관련 명령어와 유사하게 cp, mv, ls 등의 명령어를 지원한다. 

 

단일 파일 삭제

aws s3 rm <S3_URI>

# 예시
aws s3 rm s3://test/rm_test/while.sh

단일 파일 삭제

참고로 아무 파일도 존재하지 않는 디렉터리는 자동으로 경로가 삭제된다.

 

디렉터리 삭제

특정 디렉터리 아래의 파일을 전부 다룰 때에는 --recursive 옵션을 사용한다.

aws s3 rm --recursive <S3_URI>

# 예시
aws s3 rm --recursive s3://test/rm_test/

디렉터리 삭제

 

디렉터리 삭제 - 필터링(특정 파일 패턴 제외)

디렉터리 내 파일을 삭제하되 특정 패턴의 파일은 남겨두고 싶다면. --recursive 옵션과 함께 --exclude 옵션을 사용한다.

aws s3 rm --recursive --exclude "<PATTERN>" <S3_URI>

# 예시
aws s3 rm --recursive --exclude "*.sh" s3://test/rm_test/

디렉터리 삭제 - 필터링

예시에서 .sh로 끝나는 파일은 남겨두기 위해, --exclude 옵션으로 *.sh 패턴을 지정했다. 그 결과, 의도한 대로 스크립트 파일을 남아있는 모습을 확인할 수 있다.

 

파일 삭제 - 테스트

--dryrun 옵션을 이용하면 수행 결과를 확인하되, 명령은 실제로 실행시키지 않을 수 있다. 잘못된 파일을 삭제해 난감해지는 일을 방지하기 위해 명령을 사전에 테스트할 목적으로 사용할 수 있다.

aws s3 rm --dryrun <S3_URI>

# 예시
aws s3 rm --recursive --dryrun s3://test/rm_test/

파일 삭제 - 테스트

결과 출력 시, dryrun임을 표시하여 실제로 수행되지 않았음을 알려준다.

 


참고 문서

https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html