有没有办法通过`ps`中的几个条件进行选择?

Rog*_*ach 12 linux ps

似乎我遗漏了一些显而易见的东西,但仍然:

ps -f -u myuser --ppid 1
Run Code Online (Sandbox Code Playgroud)

似乎只查看进程的父 pid,并返回父 pid 为 1 的所有进程 - 即使用户不是myuser

-u单独工作正常(仅选择处理的myuser):

ps -f -u myuser
Run Code Online (Sandbox Code Playgroud)

我错过了什么?是否有一些内置方法可以按 中的几个条件进行过滤ps

编辑: 我目前的解决方法:

ps -f -p $(join <(ps h --ppid 1 -o pid | sort) <(ps h -u myuser -o pid | sort))
Run Code Online (Sandbox Code Playgroud)

ric*_*ici 14

ps那样很烦人。幸运的是,有pgrep,它具有类似的选择选项,但要求它们全部匹配,然后输出匹配的 pid。默认情况下,它每行输出一个,但可以要求它使用不同的分隔符,以便它可以与ps

ps -f -p"$(pgrep -d, -u $USER -P 1)"
Run Code Online (Sandbox Code Playgroud)