리눅스 디렉토리 삭제하기

리눅스에서 디렉토리(폴더)를 삭제할때 다음과 같은 방법으로 여러 시나리오에서 폴더를 삭제할 수 있습니다.

튜토리얼 환경 : 우분투 18.04

리눅스 디렉토리 삭제 명령어

rm

rm -r 폴더명

파일을 삭제할때도 사용하는 rm 명령어 같은 경우 -r 옵션을 붙이면 폴더 안의 파일을 포함해 삭제합니다.

pg@LOCAL:/$ rm -rf /home/pg/money
pg@LOCAL:/home/pg$ rm -rf ./money

rm 명령어 뒤의 -rf 옵션을 가장 많이 사용하며 폴더의 내용이 있어도 강제로 삭제할 수 있습니다.

옵션 뒤에 절대경로를 입력하거나, 현재 프롬프트 위치에서 상대 경로를 입력해 디렉토리를 지정하면 되며 대표적인 rm 명령어 옵션은 다음과 같습니다.

  • -r 하위 디렉토리 및 파일을 모두 삭제
  • -f 강제로 파일 또는 디렉토리를 삭제
  • -i 파일 또는 디렉토리를 삭제할 때 마다 메시지를 띄워 사용자에게 확인함
  • -d 빈 디렉토리만 삭제

rmdir

rmdir 폴더명

rm 명령어 외에도 rmdir 명령어로 폴더를 삭제할 수 있습니다.

rmdir: failed to remove ‘money’: Directory not empty

다만 rmdir 같은 경우 디렉토리 안에 파일이 있을 경우 위 메시지와 함께 삭제가 되지 않아 쓸모가 없어 보이는데, 이를 활용하면 빈 폴더를 정리할 수 있습니다.

rmdir -v *

현재 위치 하위에 있는 빈 폴더를 모두 삭제하며 -v 옵션은 메시지 출력을 비활성화 합니다.

리눅스 특정 디렉토리 삭제

단순하게 디렉토리를 지정해서 삭제할 수도 있겠지만 특정 이름이 들어간 폴더나 빈 폴더를 정리하고 싶은 경우도 있습니다.

조건 : 특정 이름

find ./ -name "bank*" -type d | xargs rm -rf

특정 이름의 디렉토리를 삭제하고 싶은 경우 find 명령어와 rm 명령어를 조합하면 됩니다.

위 예는 bank 라는 이름이 들어간 디렉토리를 찾아 삭제하는 명령어로 ./ (현재 위치) 하위의 디렉토리를 찾아 삭제하게 됩니다.

조건 : 특정 날짜

ll --time-style full-iso | awk '{print $6" "$9}' | grep 2019-01-01 | awk '{print $2}' | xargs rm -rf

특정 날짜에 생성된 디렉토리를 삭제하고 싶은 경우 디렉토리의 날짜를 출력한 다음 결과값에서 특정 날짜를 찾아 삭제하는 명령어 입니다.

위 명령어는 현재 위치한 디렉토리를 기준으로 하위의 2019-01-01에 생성된 폴더를 삭제하는 예시입니다. 만일 월 단위로 삭제하고 싶다면 2019-01 까지만 입력하면 되겠습니다.

같은 주제의 글
추천 글

댓글

이메일 주소는 공개되지 않으며 댓글에 하나 이상의 URL이 포함될 경우 관리자 승인 후 공개됩니다.

댓글은 운영 정책에 따라 관리됩니다. (링크)