Proc

如何列印索引為 24 的文件描述符總數

  • November 23, 2014

如何為 Linux 上所有正在執行的程序列印索引為 24 的文件描述符的總數?

我試過

$ ls /proc/*/fd 2> errors.txt > stdout.txt | grep "^24" stdout.txt | wc -l

此解決方案每次都返回 0。

我提到我的任務要求我寫一個單行來解決它。

你可以使用

find /proc/[0-9]*/fd/ -name 24 2> /dev/null | wc -l

或者,如果您堅持使用ls(這應該是可以安全使用的少數範例之一):

ls /proc/[0-9]*/fd 2>/dev/null | grep -c '^24$'

您的第一次嘗試失敗了,因為您將輸出重定向到一個文件 ( > output.txt),這意味著grep永遠不會匹配,因為它沒有要匹配的輸出。您可以|像我上面那樣使用管道 ( ),或者使用;or&來分隔命令:

ls /proc/[0-9]*/fd 2> errors.txt > stdout.txt; grep "^24" stdout.txt | wc -l

引用自:https://unix.stackexchange.com/questions/169544