Có thể xác định tiến trình của một lệnh rm?


18

Sử dụng rm -rf LargeDirectoryđể xóa một thư mục lớn có thể mất một lượng lớn thời gian để hoàn thành tùy thuộc vào kích thước của thư mục.

Có thể nhận được cập nhật trạng thái hoặc bằng cách nào đó theo dõi tiến trình xóa này để đưa ra ước tính sơ bộ về vị trí của quy trình không?


4
Hãy thử watch -n 5 du -s LargeDirectory. Xem khi nó về không.
Đánh dấu Plotnick

@MarkPlotnick: trên MacOS, phải cài đặt nó brew install watchhoặc xem hướng dẫn tại đây .
smci

Câu trả lời:


19

từ

man rm 

sử dụng tùy chọn -v:

-v, --verbose
explain what is being done

4
Đó không phải là tiến bộ mặc dù. Làm thế nào để bây giờ xóa foo / bar, giúp bạn xác định sự việc hoàn thành là bao xa?
cừu bay

@flyingsheep tin rằng nó loại bỏ mọi thứ theo thứ tự bảng chữ cái, ít nhất là trong OSX, vì vậy nó giúp ích theo một cách nào đó ..
Tim Baas

7

Tôi thấy câu hỏi đã cũ. Tôi muốn chia sẻ những gì nó hoạt động cho tôi để có thể giúp đỡ một số người khác.

Tôi nhận được thanh tiến trình bằng cách sử dụng pvdòng lệnh ống xem

Đây là lệnh

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

Nếu bạn cần quyền root cho thư mục hoặc tệp để xóa,

sudo rm -rv DIR_OR_FILE_NAME | pv -l -s $ (sudo du -a DIR_OR_FILE_NAME | wc -l)> / dev / null
  • rm -rv: -rđể loại bỏ đệ quy các tệp và tệp. -vverbose nó liệt kê tất cả các tập tin và thư mục đang loại bỏ.

  • pv -l -s: -lđể đếm dòng thay vì byte. -sđặt tổng số dòng cần loại bỏ.

  • $( du -a <dir_or_file> | wc -l ): du -atrả về một danh sách tất cả các tệp và thư mục từ thư mục được chỉ định. wc -ltrả về số lượng dòng xuất ra bởi du -a.

  • > /dev/null: gửi đầu ra của rm -rvhư không.


Ý tưởng tốt. Điều này có thể đưa ra số lượng tệp / thư mục không chính xác nếu bất kỳ tên nào chứa dòng mới; find {dir} -printf . | wc -csẽ an toàn hơn (nhưng -printflà một phần mở rộng GNU).
Scott

Đây thực sự là những gì tôi đang tìm kiếm, cảm ơn bạn. Những bình luận khác để lại một cái gì đó thiếu.
Hellreaver

3

Bạn có thể xem tiến trình của bất kỳ lệnh nào đang chạy với Coreutils Progress Viewer ( cv). Nó không giống như ban hành một lệnh duy nhất, nhưng bạn có thể thấy tiến trình với nó.

ví dụ về CV đang được sử dụng

Tôi chắc rằng ai đó có thể đưa ra một bí danh để chạy lệnh này bằng lệnh. Nó cũng hoạt động với cp, mv, dd, tar, gzip/gunzip, cat, etc.. Thông tin chi tiết về nó có thể được tìm thấy tại

gitthub Xfennec / tiến trình


2
Vì tiến trình (như "cv" hiện đã biết) theo dõi các tệp đang mở và rm không mở các tệp mà nó xóa, nên điều này có thể không thực sự hữu ích.
dhag

2
@dhag Quyền của bạn, tôi nghĩ rằng điều này sẽ làm việc cho rm. Bây giờ tôi đang tranh luận về việc có nên loại bỏ câu trả lời hay không. hmm
Ashitakalax
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.