각 상위 폴더 내에 하위 폴더와 파일이 있는 상위 폴더 목록이 있습니다. 상위 폴더를 비우려면 어떻게 해야 합니까? 즉, 모든 파일과 하위 폴더를 삭제하고 상위 폴더를 비워 두나요?
Parent folder A
subfolder aa
file a
Parent folder B
file b
file vv
Parent folder C
subfolder s
subfolder n
file x
.
.
.
.
답변1
GNU 사용 find
:
find "Parent folder A" "Parent folder B" ... -mindepth 1 -delete
답변2
또는 rm
각 상위 폴더 아래에서 삭제를 시작하도록 지시합니다.
# set dotglob to have * include files beginning with '.'
shopt -s dotglob
rm -r "Parent folder A"/* "Parent folder B"/* ...
답변3
최상위 디렉토리에 파일이 없다고 가정합니다.
for i in *; do (cd "$i"; rm -rf *); done
또는
for i in *; do (cd "$i"; for j in *; do rm -rf "$j"; done); done
*
나는 디렉토리가 비어 있으면 삭제를 시도하지 않고 특정 파일 패턴만 포함하도록 쉽게 수정할 수 있기 때문에 후자를 선호합니다 . 더 복잡한 작업에는 find
.
답변4
cwd(현재 작업 디렉터리)가 모든 상위 폴더가 있는 위치에 있다고 가정하면 다음을 수행할 수 있습니다.
for i in *; do
[[ -d "$i" ]] || continue
rm -rf "$i"/*
done
- 현재 폴더(예: 상위 폴더)의 모든 디렉터리를 반복합니다.
- 모든 하위 폴더의 모든 파일 및 폴더 삭제