디렉토리의 모든 것을 어떻게 삭제합니까?


25

숨겨진 파일 및 디렉토리를 포함하여 디렉토리의 모든 항목을 어떻게 삭제합니까?

지금은 다음을 사용합니다.

rm -rf *
rm -rf .*

5
에 결합 할 수 있습니다 rm -rf .* *.
사용자 알 수 없음

2
하나의 디렉토리로 이동 한 다음 다음을 실행할 수 있습니다.rm -rf yourdirectory/*
shreyansp

1
숨겨진 디렉토리 부분이 누락되었습니다. 이전 사용자 솔루션은 다음과 같은 내용을 다룹니다.
shreyansp

게시 한 두 번째 옵션은 매우 위험합니다. ..디렉토리 와 일치하며 , 의 디렉토리에있는 모든 것을 삭제 합니다.
Richard Peterson

답변:


17

간단하고 똑바로 :

find -delete 

디렉토리 및 숨겨진 파일을 포함합니다. 적어도 GNU 찾기 알고에 -delete, 당신은 find다를 수 있습니다.


1
디렉토리를 삭제하지 않으려면을 사용하십시오 find /path -delete -mindepth 1.
orodbhen 2016 년

@orodbhen : find -delete는 명령을 실행하는 디렉토리를 삭제하지 않습니다 (rm의 질문에서와 같이).
사용자가 알 수 없음

11

가장 좋은 대답은 : 그렇게하지 마십시오. 디렉토리 자체를 재귀 적으로 제거한 다음 빈 디렉토리로 다시 작성하십시오. 다른 사람들이 당신이하려는 일을 이해하는 것이 더 안정적이고 쉽습니다. 디렉토리를 다시 만들면 다른 소유자, 그룹 및 권한이있을 수 있습니다. 중요한 경우주의하십시오. 또한 실행중인 프로그램이 디렉토리에서 열린 파일 핸들 (설명자)을 가지고 있다면 제거하지 않을 것입니다. 이러한 특별한 경우가 적용되지 않으면 전체 디렉토리를 제거하는 것이 더 간단합니다.


7
그래서 어떻게 더 쉬워집니다. '주의'는 답이 아닙니다. 왜 누군가가 디렉토리를 삭제하고 다시 빌드하는지 이해하지 못합니다.
사용자 알 수 없음

"빈 디렉토리로"라는 문구를 추가했습니다. 아마도 더 분명 할 것입니다.
Chris Quenelle

2
아니요, 디렉토리를 삭제 한 다음 다시 작성하는 이유를 설명하지 않습니다. 고려할 사항에는 생성 날짜 / 시간도 포함됩니다.
사용자 알 수 없음

2
해당 디렉토리가 일부 프로세스의 현재 작업 디렉토리 인 경우 문제가 발생할 수 있습니다. 또한 디렉토리를 제거하면 권한 및 소유권에 대한 정보가 제거됩니다.

8
rm -rf -- * .[!.]* ..?*

세 가지 패턴이 모두 일치하지 않으면 자체로 확장되지만 모든 것을 일치시키고 rm -f존재하지 않는 인수를 무시 하기 때문에 문제가되지 않습니다 .

참고 .*일치합니다.. .


5

bash 4+로 가정 :

shopt -s dotglob
rm -rf -- *
##or:
rm -rf ./*

dotglob가 활성화 된 *모든 파일과 디렉토리로 시작 심지어 사람들에게 확장 .-하지만 하지 않습니다 으로 확장 .하고 ..그와 함께 안전하게 사용할 수 있도록 rm.


2

디렉토리에있는 경우 :

cd .. && rm -rf dir && mkdir dir && cd dir

그렇지 않으면:

rm -rf /path/to/dir && mkdir /path/to/dir


2

오 마이 Zsh

rm -rf (.|)*

다시 이것은 Zsh 전용입니다.


2
또는 *(D)( D글로브 한정자가이 glob_dots패턴 에 대한 옵션을 켭니다 ).
Gilles 'SO- 악마 그만'

또는 rm -rf {.,}*(bash는 달리, zsh을 포함하지 않는 ...{.,}*적어도 내 컴퓨터에).
sasha

1

를 사용하는 것은 어떻습니까 find. 하위 디렉토리를 파야 할 때 이것이 일반적으로 좋은 선택이라고 생각합니다.

find . -type f -exec rm {} \;

1
-delete 스위치가 있으므로 디렉토리를 삭제할 수 있습니다. (적어도 gnu-find에서).
사용자가 알 수 없음

이것은 하위 디렉토리를 삭제하지 않습니다
sasha

-2

시도하십시오 rm -rf *?*. 일반 파일과 숨겨진 파일이 삭제됩니다.


4
내가 아는 껍질에는 없습니다.
Gilles 'SO- 악의를 멈추십시오'

당신이 올바른지. 하위 디렉토리는 삭제하지 않습니다.
gladimdim

4
문제는 가능성이 될 것입니다 *?*(당신이 사용 가능하지 않은 파일 / 디렉토리들은 "점"일치하지 않습니다 dotglob에서 옵션 배쉬GLOB_DOTS에서 옵션 zsh을 , 또는 당신이 사용하는 쉘 무엇이든지하는 제품).
Chris Johnsen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.