Linux에서 디렉토리를 삭제하는 방법

Linux에서 디렉토리를 삭제하는 방법

2022-05-17 last update

5 minutes reading terminal rm find rmdir
Linux 시스템에는 디렉터리를 삭제하는 몇 가지 방법이 있습니다.Gnome 파일이나 KDE Dolphin 같은 데스크톱 파일 관리자를 사용하면 관리자의 그래픽 사용자 인터페이스를 사용하여 파일과 디렉터리를 삭제할 수 있습니다.그러나 헤더가 없는 서버를 사용하거나 여러 디렉터리를 동시에 삭제하려면 명령줄에서 디렉터리 (폴더) 를 삭제하는 것이 좋습니다.본 논문에서, 우리는 rmdir, rm, find 명령을 사용하여 리눅스의 디렉터리를 삭제하는 방법을 설명할 것이다.

네가 시작하기 전에

데스크톱 파일 관리자를 사용하여 디렉토리를 삭제하면 해당 디렉토리는 실제로 휴지통으로 이동하고 쉽게 복구할 수 있습니다.명령줄에서 파일이나 디렉터리를 삭제할 때, 본고에서 소개한 명령으로 디렉터리를 삭제하면 완전히 복구할 수 없기 때문에 각별히 조심해야 한다.대부분의 Linux 파일 시스템에서 디렉터리를 삭제하려면 디렉터리와 그 내용에 대해 쓰기 권한이 있어야 한다.그렇지 않으면 작업 허용 안 함 오류가 발생합니다.공백이 있는 디렉토리 이름은 백슬래시(/)로 이스케이프해야 합니다.

rmdir를 사용하여 디렉터리 삭제

rmdir은 빈 디렉터리를 삭제하는 명령행 유틸리티입니다.디렉터리가 비어 있을 때만 삭제하고 디렉터리가 비어 있는지 확인할 필요가 없다면 매우 유용합니다.rmdir이 있는 디렉토리를 삭제하려면 명령을 입력하고 삭제할 디렉토리의 이름을 따릅니다.예를 들어 dir1이라는 디렉터리를 삭제하려면 이 디렉터리가 비어 있지 않으면
rmdir dir1
을 입력하면 다음과 같은 오류가 발생합니다:
rmdir: failed to remove 'dir1': No such file or directory
이 경우 rm 명령을 사용하거나 수동으로 디렉터리 내용을 삭제해야 합니다.

rm를 사용하여 디렉터리 삭제

rm
파일과 디렉토리를 삭제하는 명령줄 유틸리티입니다.rmdir과 달리 rm 명령은 빈 디렉토리와 비어 있지 않은 디렉토리를 삭제할 수 있습니다.기본적으로 rm은 옵션을 사용하지 않으면 디렉토리를 삭제하지 않습니다.빈 디렉터리를 삭제하려면 -d(--dir) 옵션을 사용하고 빈 디렉터리를 삭제하십시오. 모든 내용은 -r(--recursive 또는 -R) 옵션을 사용합니다.예를 들어 dir1이라는 디렉토리와 모든 컨텐트를 삭제하려면
rm -r dir1
을 입력합니다. 디렉토리의 디렉토리나 파일이 쓰기 보호되어 있으면 삭제를 확인하는 프롬프트가 표시됩니다.알림 없이 디렉터리를 삭제하려면 -f 옵션을 사용하십시오:
rm -rf dir1
한 번에 여러 개의 디렉터리를 삭제하고 rm 명령을 호출한 다음 빈칸으로 구분된 디렉터리 이름을 사용하십시오.다음 명령은 목록에 있는 모든 디렉터리와 내용을 삭제합니다:
rm -r dir1 dir2 dir3
-i 옵션은 rm에 모든 하위 디렉터리와 파일을 삭제할 것을 확인하라고 알려 줍니다.만약 디렉터리에 많은 파일이 포함되어 있다면, 이것은 좀 짜증날 수 있습니다. 따라서 -I 옵션을 사용하면, 이 옵션은 계속 삭제하기 전에 한 번만 알려 줍니다.
rm -rI dir1
디렉터리 유형 삭제 yEnter 클릭.
rm: remove 1 argument recursively? y
일반적인 확장을 사용하여 여러 디렉터리를 일치시키고 삭제할 수 있습니다.예를 들어 현재 디렉터리에서 _bak으로 끝나는 모든 디렉터리를 삭제하려면 다음과 같은 명령을 사용할 수 있습니다:
rm -r *_bak
은 디렉터리를 삭제할 때 일반적인 확장을 사용하면 위험할 수 있습니다.먼저 ls 의 디렉토리를 나열하는 것이 좋습니다.rm 명령을 실행하기 전에 삭제할 디렉토리를 확인합니다.(adsbygoogle=window.adsbygoogle | |[]).추진({});

찾기를 사용하여 디렉토리 삭제

find
주어진 표현식에 따라 파일과 디렉터리를 검색하고 일치하는 파일이나 디렉터리마다 작업을 수행할 수 있는 명령줄 유틸리티입니다.가장 흔히 볼 수 있는 것은 find 명령을 사용하여 패턴에 따라 디렉터리를 삭제하는 것이다.예를 들어 현재 작업 디렉터리에서 _cache으로 끝나는 모든 디렉터리를 삭제하려면
find . -type d -name '*_cache' -exec rm -r {} +
에서 위의 명령을 분석해 봅시다.
  • /dir - current working directory에서 검색을 반복합니다.
    ( . ).
  • -type d - 검색을 디렉토리로 제한합니다.
  • -name '*_cache' - _cache
  • -exec rm -r으로 끝나는 디렉토리 - 선택적 매개 변수가 있는 외부 명령만 검색합니다. 이 예에서는 {} +입니다.
  • rm - 찾은 파일을 /dir 명령의 끝에 추가합니다.
  • 모든 빈 디렉터리 삭제

    카탈로그 트리의 모든 빈 카탈로그를 삭제하려면
    find /dir -type d -empty -delete
    다음을 실행하십시오.
  • /dir 카탈로그를 다시 검색하십시오.
  • -type d - 검색을 디렉토리로 제한합니다.
  • -empty - 빈 디렉토리만 검색합니다.
  • -delete - 서브트리에서 찾은 모든 빈 디렉토리를 삭제합니다.-delete은 빈 디렉토리만 삭제할 수 있습니다.
  • 매우 조심스럽게 -delete 옵션을 사용합니다.find 명령줄은 표현식으로 계산되며, -delete 옵션을 추가하면 지정한 기점 이하의 모든 내용을 삭제합니다.항상 -delete 옵션을 사용하지 않고 명령을 테스트한 다음 -delete을 마지막 옵션으로 사용합니다.

    /bin/rm: 매개 변수 목록이 너무 깁니다.

    명령을 사용하여 대량의 파일을 포함하는 디렉터리를 삭제할 때 이 오류 메시지가 표시됩니다.이 경우 파일 수가 명령행 매개변수 크기보다 큰 시스템 제한 때문에 발생합니다.이 문제는 몇 가지 다른 해결 방안이 있다.예를 들어, rm 을 선택할 수 있습니다.
    수동 또는 loop 사용
    하위 디렉토리를 하나씩 삭제합니다.가장 간단한 해결 방안은 먼저 cd 명령을 사용하여 디렉터리의 모든 파일을 삭제한 다음에 디렉터리를 삭제하는 것이다.
    find /dir -type f -delete && rm -r /dir

    결론

    findrm을 사용하면 서로 다른 기준에 따라 디렉터리를 신속하고 효율적으로 삭제할 수 있다.디렉터리를 삭제하는 것은 간단하고 쉬운 과정이지만 중요한 데이터를 삭제하지 않도록 조심해야 한다.질문이나 피드백이 있으면 언제든지 댓글을 달아주세요.