상위 폴더 및 하위 폴더를 삭제하지 않고 하위 폴더 및 파일을 삭제하시겠습니까?

상위 폴더 및 하위 폴더를 삭제하지 않고 하위 폴더 및 파일을 삭제하시겠습니까?

이 유형의 dir구조의 경우:

\\rdwlhsdevserver\root\user1\folders\testdat.txt
\\rdwlhsdevserver\root\abhay\testdat.txt
\\rdwlhsdevserver\root\testuser\folders1\folder2\testdat.txt
\\rdwlhsdevserver\root\devadmin\input\testdat.txt
\\rdwlhsdevserver\root\admin\testdata\testdat.txt

상위 폴더와 모든 하위 폴더를 삭제 하는 데 사용할 수 있다는 것을 알고 있지만 rm -rf <<folderPath>>다음을 제외하고 삭제하고 싶습니다.\\\rdwlhsdevserver\root\Childfolder

를 실행한 후 cmd출력은 다음과 같아야 합니다.

\\rdwlhsdevserver\root\user1\
\\rdwlhsdevserver\root\abhay\
\\rdwlhsdevserver\root\testuser\
\\rdwlhsdevserver\root\devadmin\
\\rdwlhsdevserver\root\admin\

답변1

rm -rf /path/to/root/*/*

참고: 비슷한 테스트 디렉터리 구조를 만들어 먼저 테스트해 보세요. 귀하의 쉘은 이 구문을 지원하지 않을 수 있습니다(bash 및 zsh에서 테스트했습니다).

답변2

GNU 또는 BSD 사용 find:

find /path/to/root -mindepth 2 -delete

그리고 zsh:

rm -rf /path/to/root/*/*(D)

그러나 디렉토리를 가리키는 심볼릭 링크가 있는 경우 /path/to/root해당 디렉토리에 있는 파일은 그 뒤에 삭제됩니다. 내장된 기능을 활성화하여 해결할 Arg list too big수 있는 오류가 발생할 수도 있습니다 .rm

zmodload zsh/files
rm -rf /path/to/root/*/.(D)

(내장 버전은 rm삭제될 수 있습니다 ..)

심볼릭 링크를 따르지 않으려면 다음을 수행하세요.

zmodload zsh/files
dirs=(/path/to/root/*(D/)) && rm -rf $^dirs/.

관련 정보