首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Shell脚本:如何获取使用文件系统/目录的所有进程Id

Shell脚本:如何获取使用文件系统/目录的所有进程Id
EN

Stack Overflow用户
提问于 2018-12-14 09:41:14
回答 1查看 218关注 0票数 0

我正在检查使用文件系统的进程。现在,当我开始使用的时候,就会有数百个进程出现。

代码语言:javascript
复制
fuser -cu /xyz

输出截断:

代码语言:javascript
复制
393ce(xyz)  1044c(root)  1068cm(oracle)  2065ce(xyz)  3729ce(xyz)

我只想在文件中用换行符分隔进程id,这样我就可以运行一个循环来检查进程。

EN

Stack Overflow用户

回答已采纳

发布于 2018-12-14 11:38:18

如果您只想要id而不是id(user),那么就不要使用-u选项。fuser -u文档

-u,--用户 将进程所有者的用户名附加到每个PID中。

对我来说,fuser -c /的格式与您的示例不同。每个id后面跟着表示访问类型的字母。这些字母被打印到stderr,因此我将使用2>&-来隐藏它们。

代码语言:javascript
复制
$ fuser -c /
/:                    1717rce  1754rce  1765rce  1785rce  ...
$ fuser -c / 2>&-
  1717  1754  1765  1785  ...

您可以使用grep打印每行一个id:

代码语言:javascript
复制
$ fuser -c / 2>&- | grep -o '[0-9]*'
1717
1754
1765
1785
...

但是,要运行循环,每行不需要一个id。由空格分隔的Ids也可以工作:

代码语言:javascript
复制
for id in $(fuser -c / 2>&-); do
    echo "id = $id"
done
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53777058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档