2013-04-24 12 views
5

Problem: Mam proces back-end, który w pewnym momencie zbiera i buduje duży plik tar. Ten program tar otrzymuje kilka katalogów i plików wykluczeń. proces może zająć do kilku minut i chcę zgłosić w moim procesie front-end (GUI) o postępie procesu taryfikacji (Jest to duży problem dla użytkownika, który naciska przycisk pobierania i wygląda na to, że nic się nie dzieje ...).tar wstępnie uruchomić, aby ocenić oczekiwany rozmiar lub ilość plików

Wiem, że mogę użyć opcji -v -R w komendzie tar i policzyć pliki oraz postępy w wielkości, ale szukam jakiegoś rodzaju trybu pre-run/dry run, który pomoże mi ocenić oczekiwaną liczbę plików lub oczekiwany rozmiar tar.

polecenia Używam: tar -jcf 'FILE.tgz' 'exclude_files' 'include_dirs_and_files'

10x dla każdego, kto jest chętny do pomocy.

Odpowiedz

11

Możesz wyprowadzać wyjście do narzędzia wc zamiast tworzyć plik.

Z listy plików (gadatliwym):

[[email protected]]$ tar czvf - ./test-dir | wc -c 
./test-dir/ 
./test-dir/test.pdf 
./test-dir/test2.pdf 
2734080 

Bez:

[[email protected]]$ tar czf - ./test-dir | wc -c 
2734080 
+1

Dobry połów. Aby uzyskać informacje dla przyszłych czytelników, '-' informuje tar wyjście do stdout (gdzie będzie wyprowadzone do WC). – dr01

1

Dlaczego nie można uruchomić

DIRS=("./test-dir" "./other-dir-to-test") 
find ${DIRS[@]} -type f | wc -l 

wcześniej. To pobiera wszystkie pliki (-type f) po jednym w wierszu i zlicza liczbę plików. DIRS jest tablicą w bash, dzięki czemu można przechowywać foldery w zmiennej

Jeśli chcesz wiedzieć, rozmiar wszystkich zapisanych plików, można użyć du

DIRS=("./test-dir" "./other-dir-to-test") 
du -c -d 0 ${DIRS[@]} | tail -1 | awk -F ' ' '{print $1}' 

Drukuje użycie dysku z du, oblicza sumę całkowitą (-c), pobiera ostatnią linię (przykład 4378921 total) i używa tylko pierwszej kolumny z awk

+0

Zauważam, że tar i find nie zawsze zgadzają się co do liczby plików; np. na moim Macu, tar wydaje się pomijać pliki zindeksowane dla podglądu Findera, których nie ma. – wcochran

Powiązane problemy