Bạn có thể sử dụng rm -vđể rmin một dòng trên mỗi tệp. Bằng cách này bạn có thể thấy rằng rmthực sự đang làm việc để xóa các tập tin. Nhưng nếu bạn có hàng tỷ tệp thì tất cả những gì bạn sẽ thấy là nó rmvẫn hoạt động. Bạn sẽ không biết có bao nhiêu tệp đã bị xóa và còn lại bao nhiêu.
Công cụ này pvcó thể giúp bạn ước tính tiến độ.
http://www.ivarch.com/programs/pv.shtml
Đây là cách bạn sẽ gọi rmvới pvđầu ra ví dụ
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
Trong ví dụ giả định này, tôi đã nói pvrằng có 1000các tệp. Đầu ra từ pvcho thấy 562 đã bị xóa, thời gian trôi qua là 7 giây và ước tính để hoàn thành là trong 5 giây.
Một số giải thích:
pv -llàm cho pvviệc đếm theo dòng mới thay vì byte
pv -s numbercho biết pvtổng số là gì để nó có thể cung cấp cho bạn một ước tính.
- Chuyển hướng đến
logfilecuối là cho đầu ra sạch. Nếu không, dòng trạng thái từ pvđược trộn lẫn với đầu ra từ rm -v. Phần thưởng: bạn sẽ có một logfile về những gì đã bị xóa. Nhưng hãy cẩn thận các tập tin sẽ nhận được rất lớn. Bạn cũng có thể chuyển hướng đến /dev/nullnếu bạn không cần một bản ghi.
Để có được số lượng tệp bạn có thể sử dụng lệnh này:
$ find dirname | wc -l
Điều này cũng có thể mất nhiều thời gian nếu có hàng tỷ tệp. Bạn cũng có thể sử dụng pvở đây để xem nó đã đếm được bao nhiêu
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Ở đây nó nói rằng phải mất 4 giây để đếm được 278k tệp. Số đếm chính xác ở cuối ( 278044) là đầu ra từ wc -l.
Nếu bạn không muốn chờ đếm thì bạn có thể đoán số lượng tệp hoặc sử dụng pvmà không cần ước tính:
$ rm -rv dirname | pv -l > logfile
Như thế này bạn sẽ không có ước tính để kết thúc nhưng ít nhất bạn sẽ thấy có bao nhiêu tệp đã bị xóa. Chuyển hướng đến /dev/nullnếu bạn không cần logfile.
Nitpick:
- bạn có thực sự cần
sudokhông
- thường
rm -rlà đủ để xóa đệ quy. không cần cho rm -f.