폴더 아래에는 images\
다음 폴더가 있습니다.
Usa\
Italy\
Japan\
등..
.zip
각 폴더에 대해 를 생성하는 스크립트가 필요 하므로 usa.zip
, italy.zip
, 가 있습니다 japan.zip
.
어떻게 해야 합니까?
답변1
당신이 사용할 수있는윈라르이를 위해.
모든 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 선택합니다 Add to archive
. 이제 Put each file to separate archive
탭 아래에서 옵션을 선택하십시오 Files
.
확인을 클릭하면 완료됩니다. .rar 대신 .zip 파일을 원하는 경우 아래 탭 ZIP
에서 선택하세요 .General
Archive format
답변2
백슬래시를 사용하고 있으므로 이것이 Windows라고 가정합니다.
얻다7za.exe(명령줄 버전은7-zip)를 입력하고 %PATH%
.
그런 다음 디렉터리 내에서 이를 실행합니다 Images\
.
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
또는 배치 스크립트에서:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
답변3
Linux를 사용한다고 가정하면 다음과 같은 Bash 스크립트를 사용할 수 있습니다.
#!/bin/bash
IFS=$'\n'
for f in $(find "$1" -mindepth 1 -maxdepth 1 -type d ); do
zip -r "$f" "$f"
done
이 스크립트는 첫 번째 인수를 폴더(이 경우 이미지)로 취하고 정확히 한 수준 깊이로 반복하여 모든 폴더(미국, 이탈리아 및 일본)를 가져와 같은 위치에 압축합니다.
오래된 zip 파일이나 소스 폴더는 삭제되지 않습니다. Zip은 기존 zip 파일을 감지하고 다시 실행될 때 업데이트할 만큼 똑똑합니다. 그러나 원본 폴더의 파일을 삭제하면그건 그렇지 않을거야zip 파일에서 삭제하세요. 기존 파일을 미리 삭제하면 이 동작을 피할 수 있습니다.
답변4
이것답변~에 의해MvGUbuntu에서 나를 위해 일했습니다.
이 루프를 다음에서 사용할 수 있습니다
bash
.for i in */; do zip -r "${i%/}.zip" "$i"; done
i
루프 변수의 이름입니다.*/
은 현재 디렉터리의 모든 하위 디렉터리를 의미하며 해당 이름 뒤에 슬래시가 포함됩니다.cd
이것을 실행하기 전에 올바른 위치에 있는지 확인하십시오 ."$i"
후행 슬래시를 포함하여 해당 디렉토리의 이름을 지정하면 됩니다. 따옴표는 디렉터리 이름의 공백으로 인해 문제가 발생하지 않도록 해줍니다.${i%/}
비슷$i
하지만 후행 슬래시가 제거되었으므로 이를 사용하여 zip 파일의 이름을 구성할 수 있습니다.이것이 어떻게 작동하는지 보려면
echo
앞에 를 포함하면zip
명령이 실행되는 대신 인쇄되는 것을 볼 수 있습니다.