Czy można wyświetlić pasek postępu podczas kopiowania plików w Terminalu przy użyciu cp?
Czy można wyświetlić pasek postępu podczas kopiowania plików w Terminalu przy użyciu cp?
Odpowiedzi:
Zamiast tego możesz użyć rsync.
rsync --progress /copy/from /copy/to
rsync -P /copy/from /copy/to
odpowiada ekwiwalentowi, rsync --partial --progress /copy/from /copy/to
który wyświetli postęp kopiowania, a także wznowi przesyłanie, jeśli zostanie odłączone.
-r
flagi, aby nie pomijać katalogów
Podczas cp
, CtrlTwyświetla bieżący Odsetek (na Macos przynajmniej)
Ctrl-t
wysyła SIGINFO
sygnały w taki sam sposób, jak Ctrl-c
wysyła SIGINT
sygnały. Możesz np. Użyć pętli w innej powłoce, aby wielokrotnie powtarzać kill -INFO
dany proces, jeśli nie chcesz ciągle naciskać klawiszy. Ponieważ jest to sygnał, działa również z innymi narzędziami, np dd
. Ctrl-t
i SIGINFO
są dziedziczone z BSD.
Jeśli kopiujesz duże pliki lub katalogi za pomocą cp, możesz otworzyć „Monitor aktywności”, przejść do zakładki „Dysk” i poszukać procesu „cp”. Tutaj możesz śledzić, ile bajtów zostało napisanych od ostatniego rozruchu, co daje ogólny obraz postępu. (OS X 10.10).
Mam nadzieję, że to pomaga!
#!/bin/sh
strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
| awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
To nie jest idealne, ale działa ... upuść to w ścieżce katalogu i nazwij to coś podobnego ...
strace
polecenie w momencie pisania tej odpowiedzi (lipiec 2011 r.), Ale na pewno tak nie jest dzisiaj.
rsync
zamiast tego.