여러 하위 디렉터리에 있는 파일만 압축하는 방법은 무엇입니까?

여러 하위 디렉터리에 있는 파일만 압축하는 방법은 무엇입니까?

폴더가 있는데 working그 구조는 다음과 같습니다.

working/
  100/
      1/
      2/
      3/
  200/
      1/
      2/
      3/
  300/
      1/
      2/
      3/

1 2 3폴더에는 약 1000개의 파일이 있습니다.

1 2 3폴더에 있는 파일을 별도로 압축 하고 싶습니다 . zip에는 최상위 디렉터리가 포함되어서는 안 됩니다. 어디에든 지퍼를 달아보세요. 예를 들어, 폴더 아래에 파일이 있는 경우 foo1zip 형식이어야 하며 foo 파일만 있어야 합니다.foo2foo311

답변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 파일을 건너뛸 만큼 똑똑합니다. 일부 다른 아카이브 프로그램은 구축 중인 아카이브에 구축 중인 아카이브를 채우려고 시도합니다.

관련 정보