폴더에 있습니다 : /var/myfolder
.
내부에는 다음과 같은 다른 폴더가 있습니다 /var/myfolder/A/
/var/myfolder/B/
`/var/myfolder/C/
.
각각에는 임의의 이름을 가진 파일이 있습니다. 내부의 모든 폴더에서 모든 파일을 어떻게 제거 /var/myfolder
합니까?
구조 (내의 모든 디렉토리, 예를 들어 A, B, C 등 /var/myfolder
)는 그대로 유지되어야합니다.
답변
시험:
find /var/myfolder -type f -delete
이것은 / var / myfolder 아래의 모든 일반 파일을 가져 와서 디렉토리 만 남기고 삭제합니다.
답변
zsh에서는 .
glob 한정자 를 사용하여 일반 파일 만 일치 시킵니다 .
rm -- **/*(.)
현재 디렉토리와 하위 디렉토리의 모든 (숨겨지지 않은) 일반 파일을 재귀 적으로 삭제합니다. D
glob 한정자를 추가하여 숨겨진 일반 파일 (및 숨겨진 디렉토리의 일반 파일)도 삭제하십시오.
답변
당신은 실행할 수 rm */*
있는/var/myfolder
답변
find . -depth -exec rm {} + 2>/dev/null
rm
디렉토리를 제거하지는 않으므로 모든 디렉토리에서 실행하십시오.
디렉토리에 대한 심볼릭 링크를 유지하려면
find . ! -type d -exec sh -c '
for f do [ -d "$f" ] ||
set "$@" "$f"; shift
done; rm "$@"' sh {} +
그리고 위의 버전에서 테스트해야 할 파일이 많은 경우 약간 최적화 된 방식으로 작동해야한다고 생각합니다 .
find . ! \( -type l -o -type d \) \
-exec rm {} + -o -exec sh -c '
for f do [ -d "$f" ] ||
unlink "$f";done' sh {} +
답변
# This will delete all directory contents, including hidden files and
# subdirectories, without deleting the directory itself
# With GNU find:
find /path/to/directoryToEmpty -mindepth 1 -delete
# OpenBSD (and probably other BSDs)
find /path/to/directoryToEmpty -mindepth 1 -depth -exec rm -f {} \;
# To see what it deletes, in the order it will delete it:
find /path/to/directoryToEmpty -mindepth 1 -depth -print
답변
rm var/myfolder/*/*
하위 폴더 자체를 건드리지 않고 하위 폴더 내의 모든 항목을 삭제합니다.
첫 번째는 *
의 하위 디렉토리입니다 myfolder
자체 ( A
, B
, …). 두 번째 *
의 파일입니다 A
, B
등
이상의 폴더 안에있는 경우 A
, B
등을 먼저 실행은 :
rm /var/myfolder/*/*/*
다음 실행 rm /var/myfolder/*/*
.
답변
또한 해당 디렉토리 트리의 상단으로 cd 한 다음 다음을 실행해야합니다.
find . -type f -print0 | xargs -0 rm -rf
디렉토리 트리는 그대로두고 모든 파일을 삭제해야합니다. 공백이 포함 된 파일 또는 디렉토리 이름이없는 경우 -print0 및 -0 옵션을 생략 할 수 있습니다.
find 명령은 파일 (-type f)과 링크 (-type l)를 구별하므로 링크가 있으면 그대로 두어야합니다. 그래도 테스트되지 않았습니다. 의심스러운 경우 다음을 실행하십시오.
찾기 . -l 형
이전 find 명령을 실행하기 전에 어떤 것이 나타나는지 확인하십시오.