当我运行 pgrep vim | xargs echo
,它打印 93868 91234
。
当我运行 lsof -p 91234
时,它会打印:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 91234 rose cwd DIR 1,2 1326 1186863 /Users/rose/spotapi/spotapi/models
vim 91234 rose txt REG 1,2 1629296 12231 /usr/bin/vim
vim 91234 rose txt REG 1,2 2704416 294199 /System/Library/Frameworks/Python.framework/Versions/2.7/Python
为什么会这样
pgrep vim | xargs lsof -p
打印
lsof: status error on 91234: No such file or directory
我在 Mac 操作系统上运行。
最佳答案
我在我的 Slackware 安装上看到了这个。如果您运行 lsof -p 93868 91234
,您将看到问题所在。原因是 xargs
如果可以的话,将所有参数都推送到一个命令行中。您可以使用 -n
选项来指定参数的最大数量。
pgrep vim | xargs -n1 lsof -p
关于macos - xargs 不适用于 lsof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18817864/