Proc
如何列印索引為 24 的文件描述符總數
如何為 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