Pipe
管道時的 md5sum 進度
我正在比較兩個 USB 設備
rsync
,md5sum /usb1/* /usb2/* | sort
這樣所有位於驅動器根目錄的文件都計算了它們的 md5 總和,然後輸出按 md5sum 排序。例如,整個命令擴展md5sum /usb1/bigfile1 /usb1/bigfile2 /usb2/bigfile1 /usb2/bigfile2
為 。我的不耐煩讓我想知道進展如何,即它現在正在處理哪個文件?因為它被傳送到另一個命令中,所以我沒有 stdout 或 stderr 來查看它正在散列 atm 的哪個文件。是否有某種命令可以報告另一個命令現在正在做什麼?我將此標記為“信號”,但我對信號知之甚少,以便輕鬆地用一個中斷 md5sum 過程。我記得可以發送信號以
dd
使其報告進度。
您可以
progress
為此使用:progress -p $(pgrep md5sum)
或者,如果您想持續監控
md5sum
:progress -m -p $(pgrep md5sum)
在不使用外部工具的情況下,您可以
md5sum
通過列出來查看 Linux 上目前正在訪問哪些文件/proc/$(pgrep md5sum)/fd
,並md5sum
通過查看/proc/$(pgrep md5sum)/fdinfo
.正如您所提到的,
dd
它將在收到時列印出進度報告SIGUSR1
,但這是由實現的功能,dd
而不是一般的信號介導功能。預設情況下,發送SIGUSR1
到一個程序會殺死它。