Linux

Linux find 命令 - 顯示進度

  • September 2, 2021

我想知道在使用find. 我經常發現自己在大磁碟上搜尋文件,並且某種進度指示器會非常有幫助,例如條形或至少目前目錄“查找”搜尋。是否有任何腳本可以做到這一點,或者確實find支持一些鉤子?

通過這個技巧,您可以看到目前文件夾 - 但沒有進度條 - 抱歉。

watch readlink -f /proc/$(pidof find)/cwd

一個名為pv(管道查看器)的小實用程序可能會有所幫助。來自Peteris Krumins的精彩總結:

管道查看器是一個基於終端的工具,用於通過管道監控數據的進度。

您可以通過多種方式使用 pv。在這裡玩耍時,我將它立即放在管道之後以監視 find 生成的輸出的進度(應該將 stdin 傳遞給 stdout 不變)

find / -mtime -1h | pv > /dev/null

這將顯示輸出有點像這樣:

6.42MB 0:01:25 [31.7kB/s] [         <=>      ]

(我將 stdout 重定向到 /dev/null 所以我可以看到正在執行的進度條而沒有輸出飛過。這可能不是您的意圖,因此請相應地進行調整)

老實說,我不確定這在野外效果如何。對於像上面這樣的“昂貴”發現(從根遍歷),它似乎工作得很好。對於目錄樹中較深節點中的簡單命令,pv 慘遭失敗。這些命令會立即返回結果,因此進度條在這裡可能沒有實際意義。

無論如何,玩一玩,看看這是否能滿足你的需要。至少值得深思。

引用自:https://serverfault.com/questions/341143