답변:
리눅스는 확장을 사용하지 않습니다. 이름의 확장자를 원하는지 여부를 결정하는 것은 파일 작성자에게 달려 있습니다. 리눅스는 1 번째 바이트를보고 어떤 종류의 파일을 다루고 있는지 알아냅니다.
디렉토리에서 모든 것을 제거하려면 다음을 사용하십시오.
rm /path/to/directory/*
다음과 같은 -r
옵션을 사용할 수 있습니다 .
rm -r /path/to/directory/*
또한 컨텐츠를 제거 할 디렉토리 내부의 모든 하위 디렉토리 (모든 컨텐츠와 함께)를 제거합니다. 그렇지 않으면 디렉토리를 제거하지 않았다는 오류가 표시됩니다.
all files
;) 는 이름에 어딘가에 *.*
포함 된 모든 파일을 의미합니다.
*a*
0 개 이상의 문자를 의미하고 a
그 뒤에 0 개 이상의 문자 가 옵니다. 그것은 파일 이름과 일치하는 것 happy
, apple
, a
또는 la
.
모든 내용이 포함 된 폴더 를 제거하려면 ( 모든 내부 폴더 포함 ) :
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/*
폴더에서 숨겨진 파일을 제거하지 않습니다 (예 :) .htaccess
. 아마도 rm -rf /path/to/directory/.
? 시도하지 않았습니다.
rm -rf /path/to/directory/.*
지정된 디렉토리에서 숨겨진 파일 만 삭제합니다. @Rinzwind의 답변에 대한 @danjjl의 의견을보고 숨겨진 파일을 삭제하고 실행 shopt -s dotglob
하기 전에 실행하십시오 rm -rf /path/to/directory/*
.
rm -rf /path/to/directory/.*
시스템에서의 항목이 삭제되었습니다 /path/to
. 다행히도 방금 전체 데이터를 별도의 디스크에 백업했습니다. 말할 필요도없이, rm -rf /path/to/directory/.*
전체 컴퓨터를 별도의 안전한 위치에 백업하지 않은 경우 명령을 실행하지 마십시오 !
숨겨진 파일 및 하위 디렉토리를 포함하여 디렉토리의 모든 파일을 제거하려면 다음을 실행하십시오.
rm -rf /path/to/directory/{*,.*}
./
등을 ../
,하지만 여전히 숨겨진 파일을 삭제합니다.
rm -r $(pwd)/{*,.*}
/ path / to / directory에있는 파일 만 삭제하려면 다음을 수행하십시오.
find /path/to/directory -type f -print0| xargs -0 rm
또는
find /path/to/directory -type f -exec rm '{}' \;
을 사용 find
하여 로드를 수행 할 수 있는데 , 이점은 파이핑하지 않고 발견 된 항목을 나열하여 rm
시작하기 전에 삭제 될 항목을 볼 수 있다는 것입니다.
GNU find
-delete
술어 로서 . 여전히을 사용 하려면를 -exec
대신 \;
사용 +
하면 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의 최상위에 있기 때문에 :
다른 답변은 다른 문제로 고통받습니다.
그들 중 일부는 포함 .
하고 ..
, 시끄러운 혼란, 그리고 성가신이다.
그들 중 일부는 숨겨진 파일 (점으로 시작하는 파일)을 잊어 버립니다.
디렉토리 삭제를 허용하기 위해 올바른 (가장 깊은) 순서로 삭제되지 않습니다.
그것들은 다른 (마운트 된) 파일 시스템으로 내려 가며, 종종 원하지 않는 파일 시스템입니다.
추가 매개 변수로 올바르게 확장하기가 어렵습니다 (아래에 더 자세히 설명되어 있음).
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
.
-depth
플래그 find
가 있습니다.
-delete
으로find
? -delete
깊이 우선입니다. 이미 find
와 함께 비 POSIX 를 가정 -printf
하고 있으므로 다음과 같이 사용 -delete
하거나-depth -print0 | xargs -0 rm
-not \( -path "$DIR/subdir" \)
...하지만 내 것은합니까? 왜?
shopt -s dotglob
하기 전에 실행 숨겨진 파일을 삭제하려면rm (...)