find, -exec를 기반으로 하는 Zip 하위 디렉터리

find, -exec를 기반으로 하는 Zip 하위 디렉터리

이것이 제가 달성하고 싶은 것입니다. 그 안에 일부 디렉터리와 하위 디렉터리가 있습니다(하위 하위 디렉터리가 있을 수 있음). 각 하위 디렉터리에는 해당 특정 디렉터리의 내용이 포함된 zip 파일이 필요합니다.

find 내 하위 디렉토리를 잘 찾았습니다.

find . -mindepth 2 -maxdepth 2 -type d

그런데 마무리가 힘들어요

-exec zip ... \;

도와주세요? 나는 많은 조합을 시도했지만 그것을 알아낼 수 없습니다. :(

명확히 하기 위해 여기에 트리가 있습니다.

├── DIR1
│   ├── FILE1
|   ├── FILE2
│   └── FILE3
├── FILE4
├── DIR2
│   ├── DIR3
│   │   ├── SUBDIR1
│   │   │   ├── SUBFILE1
│   │   │   ├── SUBSUBDIR1
│   │   │   │   ├── SUBSUBFILE1
│   │   │   │   └── SUBSUBFILE2
│   │   │   └── SUBSUBDIR1
│   │   │       ├── SUBSUBFILE3
│   │   │       └── SUBSUBFILE4
│   │   ├── FILE4
│   │   ├── FILE5
│   │   ├── FILE6
│   │   └── Zip file named DIR3.zip with FILE4, FILE5, FILE6

답변1

현재 탐색 중인 디렉터리에서 명령을 실행하는 -execdir대신 다음을 사용 하면 이 문제가 조금 더 쉬워집니다 .-execfind

find . -mindepth 2 -maxdepth 2 -type d -execdir zip -r {}.zip {} ';'

이 문자열은 현재 파일 이름 {}으로 해석되며 사용될 경우 상대적입니다.find-execdir

관련 정보