리눅스에서 디렉토리(폴더)를 삭제할때 다음과 같은 방법으로 여러 시나리오에서 폴더를 삭제할 수 있습니다.
목차
리눅스 디렉토리 삭제 명령어
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 까지만 입력하면 되겠습니다.