Idealny byłby pasek postępu o stałej długości, liczba plików lub bajtów, lub jeszcze lepiej licznik czasu pokazujący szacowany pozostały czas.
zip
Standardowe zachowanie wydaje się polegać na drukowaniu wiersza dla każdego przetwarzanego pliku, ale nie chcę, aby te informacje były przeciążone, gdy skompresuję tysiące plików. Chcę oszacować, ile to zajmie.
Próbowałem opcji -q
( --quiet
) w połączeniu z -dg
( --display-globaldots
), ale to po prostu zalewa standardowe wyjście z wieloma liniami kropek i nie daje użytecznego wskazania.
Próbowałem też, -qdgds 10m
jak wspomniano na stronie podręcznika użytkownika, ale uzyskałem ten sam wynik.
Następnie spróbowałem -db
( --display-bytes
) i -dc
( --display-counts
), ale wydaje się, że nie ma opcji globalnej, więc ponownie drukuje ją dla każdej nazwy pliku.
Na koniec spróbowałem tego razem z -q
polubieniem -qdbdc
, ale to nic nie daje .
Co zabawne, znalazłem stronę podręcznika man w witrynie info-zip, która wspomina o opcji -de
( --display-est-to-go
), która powinna „Wyświetlać przybliżony czas zakończenia operacji archiwizacji”.
Brzmi dokładnie tak, jak chcę, ale problem polega na tym, że moja wersja zip
nie ma tej funkcji. Używam Ubuntu 14.04.1 64bit, bash-4.3.30 (1) i zip-3.00. Według Wikipedii jest to najnowsza stabilna wersja zip.
Na stronie info-zip sourceforge znajdują się niepublikowane wersje beta, ale wolałbym nie powierzać moich danych wersji beta.
pv /path/to/file | gzip > /path/to/file.gz
tee
. Przed rozpoczęciem kompresowania zrób całkowitą liczbę plików (za pomocąls
lubfind -type f
), a podczas kompresowania przeczytaj plik dziennika zawierający liczbę linii przetworzonych plików, które już posiada (zgrep
odpowiednimi liniami do przeglądania iwc -l
liniami count), więc informacje wysokiego poziomu pokażą coś w stylu „przetworzono pliki 234/76438”;