“Cp” ile kopyaladığımda Terminal bir ilerleme çubuğu gösterecek mi?


33

Cp kullanarak Terminal'de dosyaları kopyalarken bir ilerleme çubuğu görüntülemek mümkün mü?


2
rsyncBunun yerine kullanmayı da düşünebilirsiniz .
Asmus,

Herhangi bir üçüncü taraf araç kurmadan genel ilerleme çubuğuyla bunu yapmanın bir yolu var mı? Belki bir senaryo ya da bir şey?
rraallvv

Yanıtlar:


49

Bunun yerine rsync kullanabilirsiniz.

rsync --progress /copy/from /copy/to

1
Hızla, hangisi daha hızlı, rsync veya cp?
daviesgeek

Kopyalanan tüm dosyalar hedefte mevcut değilse, fark edilebilir bir fark olacağını sanmıyorum. Dosyaların bazıları hedefte mevcutsa, değişiklik olacaktır çünkü rsync bazı kontroller yapar. Rsync genellikle (ancak her zaman değil) bu durumda daha hızlı olacaktır.
bahamat

2
Kullanımı rsync -P /copy/from /copy/to, rsync --partial --progress /copy/from /copy/tokopyanın ilerleyişinin görüntüleneceği eşdeğerdir ve bağlantı kesilirse aktarmaya devam eder.
gh0st

Ve tıpkı cp gibi, -rdizinleri atlamaması için bayrağa ihtiyacı var
Alexander - Reinstate Monica

21

Sırasında cp, CtrlTgeçerli yüzdeyi görüntüler (en azından macOS'ta)


bu harika!
felix021

1
Bunun çalışmasının nedeni, sinyalleri Ctrl-tgönderdiği SIGINFOşekilde Ctrl-cgöndermesidir SIGINT. kill -INFOTuşlara basmaya devam etmek istemiyorsanız, söz konusu işlemi tekrar tekrar yapmak için başka bir kabuğun içinde bir döngü kullanabilirsiniz . Bu bir sinyal olduğu için diğer araçlarla da çalışır, örneğin dd. Ctrl-tve SIGINFOBSD'den devralınır.
HTNW

1

Cp kullanarak büyük dosyaları veya dizinleri kopyalıyorsanız, 'Activity Monitor' öğesini açabilir, 'Disk' sekmesine gidip 'cp' işlemini arayabilirsiniz. Burada, son önyüklemeden bu yana kaç bayt yazıldığını takip edebilir ve ilerleme hakkında fikir edinebilirsiniz. (OS X 10.10).

Umarım yardımcı olur!


0
#!/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

Mükemmel değil, ama işe yarıyor ... bunu bir dizin yoluna bırakın ve benzer bir şekilde adlandırın ..


Bekle ... bunu çalıştırmak için nasıl alabilirim ???
daviesgeek

2
OS X'in stracebu cevabın yazıldığı tarihte bir emri olup olmadığını hatırlamıyorum (Temmuz 2011), fakat kesinlikle bugün yok.
Tim Ruddick

Bunu MacOS'ta nasıl çalıştıracağınız hakkında bir fikriniz var mı?
rraallvv
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.