고정 길이 진행률 표시 줄, 파일 또는 바이트 수 또는 남은 예상 시간을 보여주는 타이머가 이상적입니다.
zip
의 표준 동작은 처리 된 모든 파일에 대해 한 줄을 인쇄하는 것으로 보이지만 수천 개의 파일을 압축 할 때 해당 정보가 과부하되는 것을 원하지 않습니다. 얼마나 오래 걸릴지 추측하고 싶습니다.
나는 시도 -q
( --quiet
와 함께) 옵션을 -dg
( --display-globaldots
)하지만 단지 홍수 점의 여러 라인 표준 출력 및 유용한 표시를 제공 없는지 확인합니다.
-qdgds 10m
맨 페이지에서 언급 한대로 시도했지만 동일한 결과를 얻었습니다.
그런 다음 -db
( --display-bytes
) 및 -dc
( --display-counts
) 을 시도했지만 전역 옵션이없는 것이므로 모든 파일 이름에 대해 다시 인쇄합니다.
마지막으로 -q
like와 함께 시도했지만 -qdbdc
아무것도 출력하지 않습니다.
유감스럽게도 info-zip 사이트에서 “보관 작업을 마치는 데 걸리는 예상 시간을 표시해야” 하는 -de
( --display-est-to-go
) 옵션 에 대한 매뉴얼 페이지를 찾았습니다 .
그것은 내가 원하는 것과 정확히 같지만 문제는 내 버전에 zip
해당 기능이 없다는 것입니다. 우분투 14.04.1 64 비트, bash-4.3.30 (1) 및 zip-3.00을 사용하고 있습니다. Wikipedia에 따르면 이것은 zip의 최신 안정 릴리스입니다.
info-zip sourceforge 페이지에 릴리스되지 않은 베타 버전이 있지만 베타 릴리스에 내 데이터를 위임하지 않습니다.
답변
zip
데이터를 표준 출력으로 압축 할 수 있습니다. 따라서 다음과 같은 다른 도구와 결합 할 수 있습니다 pv
.
zip -qr - [folder] | pv -bep -s $(du -bs [folder] | awk '{print $1}') > [file.zip]
-bep
편의상 옵션 중 하나를 제거하십시오 .
답변
7z를 사용해도 괜찮다면 :
7z a output.zip folder/
그러면 다음과 같은 진행 표시 줄이 나타납니다.
Open archive: test.zip
--
Path = test.zip
Type = zip
Physical Size = 232039663
Scanning the drive:
3 folders, 2401 files, 238122225 bytes (228 MiB)
Updating archive: test.zip
Items to compress: 2404
16% 279 U folder/file.txt
답변
나는 다음을 성공적으로 사용했다.
zip -r [target_zip] [folder_to_zip] 2>&1 |
pv -lep -s $(ls -Rl1 [folder_to_zip] | egrep -c '^[-/]') > /dev/null
그리고 이것은 아래에 설명되어 있습니다 :
zip -r [target_zip] [폴더 _to_zip] 2> & 1 |
stderr을 stdout으로 리디렉션하는 [folder_to_zip] 파일을 [target_zip] 파일에 반복적으로 압축합니다. stderr에는 처리중인 각 파일 및 디렉토리에 대해 한 줄 이 포함 됩니다.
pv -lep -s $ (ls -Ral1 [folder_to_zip] | egrep -c ‘^ [-/]’)> / dev / null
zip에서 출력되는 파일 이름을 가진 행을 pv에 파이프하십시오. pv는 라인 모드에서 작동합니다 (라인을 기준으로 계산 진행률 및 크기도 예상되는 라인 수입니다 -PV 매뉴얼 페이지 -l 옵션 참조 ).
예상되는 총 줄 크기는 [folder_to_zip]을 재귀 적으로 나열 (ls)하고 ‘-‘또는 ‘d’로 시작하는 줄, 즉 모든 파일과 디렉토리를 계산하여 수집합니다 (디렉토리는 ‘/’로 시작 함을 기억하십시오) .
위의 내용은 모든 파일과 디렉토리가 처리 될 때 100 %에 도달하므로 정확한 완료율을 제공합니다.
pedroapero의 대답에 대한 문제는 처리 (압축되지 않은) 처리 할 총 바이트 수에 대해 처리 된 (압축 된) 바이트 수에 대해 진행률이 계산된다는 것입니다. 결과적으로 프로세스는 약 30 %에서 완료됩니다 (압축률에 따라 다름).