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 / 问题 / 29886
Accepted
mike
mike
Asked: 2009-06-23 09:59:53 +0800 CST2009-06-23 09:59:53 +0800 CST 2009-06-23 09:59:53 +0800 CST

如何在 Linux 上列出文件的数据块?

  • 772

据我了解,类 Unix 操作系统上的每个文件都有一个 inode 编号(可以使用“ls -i”查看),每个 inode 都是包含文件实际数据的磁盘块列表。

是否有一个 Linux 命令将文件名作为其参数并打印出该文件的 inode 指向的磁盘块列表?

PS 有问题的文件系统是 ext3。

linux unix filesystems ext3
  • 5 5 个回答
  • 36892 Views

5 个回答

  • Voted
  1. Best Answer
    katriel
    2009-06-23T10:28:11+08:002009-06-23T10:28:11+08:00

    您可以使用“debugfs”工具在命令行或交互式查看文件信息。要么使用:

    # debugfs /dev/<spartition>
    # stat /path/to/file
    

    或者

    # debugfs -R "stat /path/to/file" /dev/<partition>
    

    例如:

    # debugfs -R "stat /etc/passwd"  /dev/sda5
    Inode: 435914   Type: regular    Mode:  0644   Flags: 0x0
    Generation: 979004472    Version: 0x00000000
    User:     0   Group:     0   Size: 1577
    File ACL: 0    Directory ACL: 0
    Links: 1   Blockcount: 8
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x4a2d6f78 -- Mon Jun  8 23:07:20 2009
    atime: 0x4a2d6f79 -- Mon Jun  8 23:07:21 2009
    mtime: 0x4a2d6f78 -- Mon Jun  8 23:07:20 2009
    Size of extra inode fields: 4
    BLOCKS:
    (0):1767438
    TOTAL: 1
    
    • 20
  2. CesarB
    2009-06-23T10:49:55+08:002009-06-23T10:49:55+08:00

    获取块列表的一种简单方法(无需像debugfs答案中那样从分区中读取)是使用FIBMAPioctl. 我不知道有什么命令可以做到这一点,但是写一个很简单;一个快速的谷歌搜索给了我一个 FIBMAP 使用的例子,这正是你想要的。一个优点是它可以在任何支持该bmap操作的文件系统上工作,而不仅仅是 ext3。

    一个更新的(和更有效的)替代方案是FIEMAPioctl,它还可以返回有关范围的详细信息(对 ext4 有用)。

    • 5
  3. ChewbaccaKL
    2018-12-01T07:13:59+08:002018-12-01T07:13:59+08:00
    hdparm --fibmap /path/to/filename
    

    我不会在 zfs 上工作,但会在 ext4、btrfs、(v)fat 等上工作

    man 8 hdparm:

    --fibmap使用时,这必须是唯一给出的标志。它需要一个文件路径作为参数,并将打印出磁盘上该文件占用的设备范围(扇区范围)的列表。扇区号以绝对 LBA 号的形式给出,从物理设备的扇区 0(不是分区或文件系统)引用。然后,此信息可用于各种目的,例如检查较大文件的碎片程度,或确定适当的扇区以在故障注入测试过程中故意损坏。

    • 5
  4. Evan Anderson
    2009-06-23T10:27:30+08:002009-06-23T10:27:30+08:00

    查看“debugfs”的语法,特别是“stat”命令。这将显示文件使用的数据块列表。您可以使用“-f”参数将参数传递给“debugfs”,以便从脚本中调用它。

    • 4
  5. user10357
    2009-06-23T10:09:18+08:002009-06-23T10:09:18+08:00

    至少在某些 linux 机器上......“ls -s”可能会提供您正在寻找的东西。

    编辑:我的错,我看到你正在寻找块本身的列表,而不是它们的计数。

    • 2

相关问题

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

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

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

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

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

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

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 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
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +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