AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 106398
Accepted
Vladislav Rastrusny
Vladislav Rastrusny
Asked: 2010-01-27 06:13:04 +0800 CST2010-01-27 06:13:04 +0800 CST 2010-01-27 06:13:04 +0800 CST

lsof - 仅将输出限制为物理文件 - 如何?

  • 772

我如何告诉 lsof 我只需要列出物理文件(不是套接字,不是 TCP/IP 连接,只有物理文件)?

linux lsof
  • 5 5 个回答
  • 28154 Views

5 个回答

  • Voted
  1. Best Answer
    Dave Drager
    2010-01-27T06:32:33+08:002010-01-27T06:32:33+08:00

    刚刚浏览了一些手册页,您似乎使用了以下命令:

    sudo lsof /
    

    这将列出 / 目录中所有打开的文件,这是 Linux 文件系统上的所有内容。刚刚测试,它只显示 REG 和 DIR。

    更多示例:

    lsof -a -d 0-999 -c <command name> /
    lsof -a -d 0-999 -p <pid> /
    

    0-999 将其限制为具有文件描述符编号的文件。

    • 42
  2. Kyle Brandt
    2010-01-27T06:16:36+08:002010-01-27T06:16:36+08:00

    可能有一个开关,但如果你不介意通过 grep 过滤它,你可以这样做sudo lsof | egrep 'REG|DIR',假设“物理文件”是指常规文件和目录。

    man lsof有关该列中可能存在的所有类型,请参见手册页的 OUTPUT :: TYPE 部分。

    • 11
  3. Greg Barrett
    2018-09-21T14:10:15+08:002018-09-21T14:10:15+08:00

    这就是我所做的,对我来说非常有效:

    lsof -F n -p 12501 | grep ^n/ | cut -c2- | sort -u
    

    -F n选项将lsof导致它只打印打开文件的名称。每个具有打开文件名称的输出行都以单个字符n开头,后跟name。常规文件将始终是文件的绝对、完全限定名称。将grep ^n/仅选择名称以 a 开头的那些行/(表示绝对的、完全限定的文件名);从而消除诸如开放端口、套接字、管道(如 FIFO)等之类的东西。cut -c2-将消除第一个字符 the n,只留下文件名。最后,sort -u将消除任何重复的条目。

    需要注意的是,这将包括不规则的文件,只要它们的名称以/. 例如,将包含以下开头的所有文件:

    • /dev
    • /proc
    • /系统

    可能还有其他取决于您的操作系统。

    • 3
  4. Horror Vacui
    2021-04-29T02:03:04+08:002021-04-29T02:03:04+08:00

    如果您使用lsof /它,它只会列出直接安装在 / 下的文件系统上的打开文件 - 也就是说,如果您将 /home 安装在 / 下,它的内容将被忽略。我尝试了 lsof 的各种选项组合,但都有问题。我能想到的最好的是:

    lsof `readlink -f /dev/block/*`
    

    这使用 readlink -f 获取所有块设备并将它们作为搜索列表提供。lsof 忽略未安装的那些。

    如果您有任何其他选项来限制搜索,例如 pid,请记住以 to 结束 lsof 命令-a并将它们与块设备列表一起:

    lsof -p 982482 -a `readlink -f /dev/block/*`
    
    • 2
  5. no_ripcord
    2020-04-19T09:38:47+08:002020-04-19T09:38:47+08:00

    这在 mac os 上运行良好:

    $ lsof /
    

    我喜欢这样,因为它很快。如果指定 -p 会更快

    $ lsof -a -p <comma,sep,pids> /
    
    • 1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve