폴더가 있는데 working
그 구조는 다음과 같습니다.
working/
100/
1/
2/
3/
200/
1/
2/
3/
300/
1/
2/
3/
각 1
2
3
폴더에는 약 1000개의 파일이 있습니다.
1
2
3
폴더에 있는 파일을 별도로 압축 하고 싶습니다 . zip에는 최상위 디렉터리가 포함되어서는 안 됩니다. 어디에든 지퍼를 달아보세요. 예를 들어, 폴더 아래에 파일이 있는 경우 foo1
zip 형식이어야 하며 foo 파일만 있어야 합니다.foo2
foo3
1
1
답변1
간단한 루프가 트릭을 수행합니다.
cd working
for dir in */*/; do
[ -e "$dir/files.zip" ] || # skip directories where the zip already exists
( cd -- "$dir" && zip -r files.zip .)
done
zip은 해당 디렉터리에서 반복될 때 빌드되는 zip 파일을 건너뛸 만큼 똑똑합니다. 일부 다른 아카이브 프로그램은 구축 중인 아카이브에 구축 중인 아카이브를 채우려고 시도합니다.