디렉토리에서 모든 파일을 제거하는 방법? 내가 얻은

내가 얻은 가장 가까운 것은

# rm /path/to/directory/*.*

그러나 확장자가없는 파일에는 작동하지 않습니다 …



답변

리눅스는 확장을 사용하지 않습니다. 이름의 확장자를 원하는지 여부를 결정하는 것은 파일 작성자에게 달려 있습니다. 리눅스는 1 번째 바이트를보고 어떤 종류의 파일을 다루고 있는지 알아냅니다.

디렉토리에서 모든 것을 제거하려면 다음을 사용하십시오.

rm /path/to/directory/*

다음과 같은 -r옵션을 사용할 수 있습니다 .

rm -r /path/to/directory/*

또한 컨텐츠를 제거 할 디렉토리 내부의 모든 하위 디렉토리 (모든 컨텐츠와 함께)를 제거합니다. 그렇지 않으면 디렉토리를 제거하지 않았다는 오류가 표시됩니다.


답변

  • 모든 내용이 포함 된 폴더 를 제거하려면 ( 모든 내부 폴더 포함 ) :

    rm -rf /path/to/directory
    
  • 폴더 자체가 아닌 폴더의 모든 내용 ( 모든 내부 폴더 포함) 을 제거하려면 :

    rm -rf /path/to/directory/*
    

    또는

    rm -rf /path/to/directory/{*,.*}
    

    숨겨진 파일 / 디렉토리도 제거해야합니다.

  • 폴더 내부에서 모든 “파일”을 제거하려면 ( 내부 폴더는 제거 하지 않음 ) :

    rm -f /path/to/directory/{*,.*}
    

  • 경고 : 경로에 공백이 있으면 항상 따옴표를 사용하십시오.

    rm -rf /path/to the/directory/*
    

    2 개의 개별 rm -rf호출과 같습니다.

    rm -rf /path/to
    rm -rf the/directory/*
    

    이 문제를 피하려면 '작은 따옴표 '( 쉘 변수를 확장하지 않음 ) 또는 "큰 따옴표 "( 쉘 변수를 확장 )를 사용할 수 있습니다.

    rm -rf "/path/to the/directory/"*
    

어디:

  • rm– ” 삭제 “를 나타냅니다.
  • -f– 예를 들어 아카이브를 제거 할 것인지 묻거나 묻지 않으려는 경우 도움이되는 ” 강제 “를 나타냅니다 .
  • -r– ” 재귀 “의 약어 로, 모든 폴더를 재귀 적으로 내려 가고 모든 것을 제거하고 싶다는 의미입니다.

답변

숨겨진 파일 및 하위 디렉토리를 포함하여 디렉토리의 모든 파일을 제거하려면 다음을 실행하십시오.

rm -rf /path/to/directory/{*,.*}

답변

/ path / to / directory에있는 파일 만 삭제하려면 다음을 수행하십시오.

find /path/to/directory -type f -print0| xargs -0 rm

또는

find /path/to/directory -type f -exec rm '{}' \;

을 사용 find하여 로드를 수행 할 수 있는데 , 이점은 파이핑하지 않고 발견 된 항목을 나열하여 rm시작하기 전에 삭제 될 항목을 볼 수 있다는 것입니다.


답변

디렉토리에서 모든 파일 및 디렉토리 ( 숨겨진 파일 포함)를 삭제하려면 다음을 시도하십시오.

  • 폴더를 삭제 한 다음 다시 만드십시오.

    rm -rf dir_name && mkdir dir_name
    
  • 사용하다 find

    find dir_name -mindepth 1 -delete
    

여기서는 -mindepth 1디렉토리 dir_name 자체를 제외하도록 지정 합니다.
다음 링크를 살펴보십시오 :
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory


답변

모든 하위 디렉토리와 디렉토리 자체를 제거하려면을 사용할 수 있습니다 rm -rf /path/to/directory. 그러나 return 키를 누르기 전에 항상 줄을 다시 확인하십시오 rm -rf. 예를 들어 수퍼 유저 권한을 가지고 첫 번째 슬래시 뒤에 실수로 공백을 삽입하는 경우 많은 행동을 유발할 수 있습니다 …


답변

이 질문은 내가 직접 검색 할 때 끊임없이 Google의 최상위에 있기 때문에 :

다른 답변은 다른 문제로 고통받습니다.

  1. 그들 중 일부는 포함 .하고 .., 시끄러운 혼란, 그리고 성가신이다.

  2. 그들 중 일부는 숨겨진 파일 (점으로 시작하는 파일)을 잊어 버립니다.

  3. 디렉토리 삭제를 허용하기 위해 올바른 (가장 깊은) 순서로 삭제되지 않습니다.

  4. 그것들은 다른 (마운트 된) 파일 시스템으로 내려 가며, 종종 원하지 않는 파일 시스템입니다.

  5. 추가 매개 변수로 올바르게 확장하기가 어렵습니다 (아래에 더 자세히 설명되어 있음).

따라서 디렉토리의 모든 파일과 폴더를 정확하게 삭제하려면 다음을 수행하십시오.

find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --

-xdev마운트 /proc등 으로 내려가는 것을 막기 위해 인수를 추가했습니다 .

-depth-delete?

사람들이 끊임없이 저를 피하는데도 불구하고, 그 방법에는 단점이 있습니다. -prune더 많은 문제를 일으키지 않고 하위 디렉토리 를 허용 할만 큼 확장 가능한 것처럼 보이지 않습니다 . 이 방법과 달리 삽입 할 수 있습니다

-not \( -path "${DIR}/subdir" -prune \)

내용이 삭제되지 않도록 -mindepth인수 앞에 subdir.