Uniksowe polecenie kopiowania, które ma pasek postępu, ale nie jest tak ciężkie jak rsync

14

Muszę skopiować wiele plików. Zwykle używam rsync, ponieważ przekazuję mu -aPopcje i widzę (a) ile plików pozostało do przetworzenia i (b) ile poszczególnych plików jest kopiowanych.

Jednak rsync robi też wiele rzeczy z sumami kontrolnymi, aby sprawdzić, czy plik został skopiowany. Jednak tak naprawdę nie potrzebuję tego teraz. Ale normalny cpnie obejmuje wyżej wymienionej liczby pozostałych plików, co jest bardzo pomocne.

Czy coś takiego cpobejmuje postęp o ile pozostało plików, ale nie jest tak ciężki jak rsync?

Rory
źródło

Odpowiedzi:

21

Możesz uruchomić rsync z przełącznikiem -W, który wyłączy sumy kontrolne.

Stefan Wolff
źródło
6

Czy to odpowiedni alias dla twoich sugestii?

cp_p() {
    rsync -WavP $1 $2
}

-W -nie używaj algorytmu transferu delta
-a tryb archiwizacji
-v pełne
-P pokaż pasek postępu i zachowaj częściowe pliki

kolejna alternatywa, którą znalazłem w niektórych miejscach . wymaga jednak pakietu pv (pipeviewer).

cp_pv() {
    pv -per $1 > $2
}

-p pokaż postęp
-e pokaż eta
-r pokaż szybkość
-n pokaż wynik liczbowy

/ edit Właśnie przetestowałem powyższe aliasy i mogę potwierdzić, że działają. Wcześniej były literówki

Vijay
źródło
Wydaje się, że obsługuje to tylko kopiowanie jednego pliku do nazwanego pliku, a nie do katalogu. Co jeśli chcę skopiować wiele plików? Czy katalog?
einpoklum
Są to tylko aliasy, więc możesz eksperymentować z rzeczywistymi surowymi poleceniami w środku, aby zobaczyć, co działa dla Ciebie. Jestem pewien, że rsync obsługuje katalogi i inne oznaczenia ścieżek. Możesz łatwo dostosować aliasy, aby działały w konkretnej sytuacji. Udostępnij, jeśli to działa. IIRC Używałem go wcześniej z katalogami bez problemu.
Vijay
3

możesz po prostu uderzyć opcję -v na cp cmd lub użyć scp do localhost

egorgry
źródło
-v to dobry początek i jest całkiem pomocny, ale chciałbym uzyskać więcej informacji o tym, ile dokładnie plików zostało / zostało skopiowanych / itp.
Rory
2
Więc chcesz rozwiązania Stefana Wolffa.
egorgry
1

Jest to nadmiar w stosunku do narzutu szyfrowania, ale możesz używać scplokalnie:

scp <file-from> <file-to>

Wyświetli postęp podczas kopiowania.

królikarnia
źródło
Przynajmniej w OSX, scpdomyślnie nie pokazuje żadnego paska postępu, ponieważ używa cppod maską, gdy w grę wchodzą pliki lokalne.
Sridhar Ratnakumar
1

gcpjest miłym narzędziem. Tutaj masz pakiet PyPI , ale można go również znaleźć w pakiecie dystrybucyjnym (na przykład w debian / ubuntu wykonuj apt-get install gcp zadanie).

Jest też przyjemny samouczek na temat gcp .

$ gcp -r Solaar / solaar2

Kopiowanie 7,53 MiB 100% | ############################# | 134,92 M / s Czas: 00:00:00
spinus
źródło