여러 디렉토리를 개별 zip 파일로 압축하는 명령 명령을 내기

내부에 수십 개의 디렉토리가 포함 된 단일 디렉토리가 있습니다.

나는 커맨드 라인을 처음 사용하고 각 하위 디렉토리를 고유 한 subdirectory.zip 파일로 압축하는 명령을 내기 위해 고심하고 있습니다.

결국 기본 디렉토리는 모든 원본 하위 디렉토리와 .zip각 하위 디렉토리의 압축 된 내용이 들어있는 해당 파일 로 채워집니다 .

이와 같은 것이 가능합니까? 그렇다면 어떻게했는지 알려주십시오.



답변

이 루프는 bash다음 에서 사용할 수 있습니다 .

for i in */; do zip -r "${i%/}.zip" "$i"; done

i루프 변수의 이름입니다. */는 현재 디렉토리의 모든 하위 디렉토리를 의미하며 해당 이름에 슬래시를 포함합니다. cd이를 실행하기 전에 올바른 위치에 있는지 확인하십시오 . "$i"뒤에 슬래시를 포함하여 해당 디렉토리의 이름을 지정하십시오. 인용 부호는 디렉토리 이름의 공백이 문제를 일으키지 않도록합니다. 후행 슬래시가 제거 된 ${i%/}것과 같으 $i므로이를 사용하여 zip 파일의 이름을 구성 할 수 있습니다.

이것이 작동하는 방식을 보려면 echobefore를 포함 zip하면 명령 대신 실행 된 명령이 표시됩니다.