Bir rm komutunun ilerlemesini belirlemek mümkün müdür?


18

Kullanılması rm -rf LargeDirectorybüyük dizini silmek için dizinin boyutuna bağlı olarak komple zaman büyük miktarda alabilir.

Komutun süreçte nerede olduğuna dair kabaca bir tahmin vermek için bir durum güncellemesi almak veya bir şekilde bu silme işleminin ilerlemesini izlemek mümkün müdür?


4
Deneyin watch -n 5 du -s LargeDirectory. Sıfıra giderken izleyin.
Mark Plotnick

@MarkPlotnick: MacOS'ta, yüklemeniz brew install watchveya talimatlar için buraya bakın .
smci

Yanıtlar:


19

itibaren

man rm 

-v seçeneğini kullanın:

-v, --verbose
explain what is being done

4
bu ilerleme değil. “şimdi foo / bar silinmesi” tüm şeyin ne kadar olduğunu belirlemenize nasıl yardımcı olur?
uçan koyun

@flyingsheep, her şeyi alfabetik sırayla kaldırdığına inanıyor, en azından OSX'te öyle yapıyor, bu yüzden bir şekilde yardımcı oluyor ..
Tim Baas

8

Sorunun eski olduğunu görüyorum. Başkalarına yardım etmemin benim için ne işe yaradığını paylaşmak istiyorum.

İlerleme çubuğunu kullanarak pv Boru Görüntüleyicisi komut satırını

Bu komut

rm -rv DIR_OR_FILE_NAME | pv -l -s $ (du -a DIR_OR_FILE_NAME | wc -l)> / dev / null

Dizin veya dosyanın silinmesi için kök izinlerine ihtiyacınız varsa,

sudo rm -rv DIR_OR_FILE_NAME | pv -l -s $ (sudo du -a DIR_OR_FILE_NAME | wc -l)> / dev / null
  • rm -rv: -rdizinleri ve dosyaları özyinelemeli olarak kaldırmak için. -vayrıntılı olarak, kaldırmakta olan tüm dosyaları ve dizinleri listeler.

  • pv -l -s: -lbayt yerine satır saymak için. -skaldırılacak toplam satırları ayarlayın.

  • $( du -a <dir_or_file> | wc -l ): du -abelirtilen dosyadaki tüm dosyaları ve dizinleri listeler. wc -ltarafından çıkarılan satır sayısını döndürür du -a.

  • > /dev/null: çıkışını rm -rvhiçbir yere göndermeyin .


İyi bir fikir. Herhangi bir ad yeni satır içeriyorsa, bu yanlış dosya / dizin sayısı verebilir; find {dir} -printf . | wc -cdaha güvenli olurdu (ancak -printfbir GNU oluşumudur).
Scott

Aslında aradığım şey bu, teşekkür ederim. Diğer yorumlar eksik bir şey bıraktı.
Hellreaver

3

Coreutils Progress Viewer ( cv) ile şu anda çalışan herhangi bir komutun ilerlemesini görüntüleyebilirsiniz . Tek bir komut vermek gibi değil, ancak onunla ilerlemeyi görebilirsiniz.

kullanılan CV örneği

Eminim birisi bu komutla çalıştırmak için bir takma ad gelebilir. Ayrıca çalışır cp, mv, dd, tar, gzip/gunzip, cat, etc.. Bununla ilgili daha fazla bilgi şu adreste bulunabilir:

gitthub Xfennec / ilerleme


2
İlerleme ("cv" olarak bilindiği gibi) açık dosyaları izlediğinden ve rm sildiği dosyaları açmadığından, bu aslında çok yararlı olmayabilir.
dhag

2
@dhag Hakkınız, bunun rm için çalışacağını düşündüm. Şimdi cevabın kaldırılıp kaldırılmayacağını tartışıyorum. hmm
Ashitakalax
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.