有时可能需要查看 Unix 操作系统中有关于文件基本单元的块大小,以便对有的系统进行适当的优化(如 MySQL),本文将介绍几种在 Unix 上以及类 Unix 操作系统上可行的查看方式

检查文件系统[1]

  • 使用 df 命令

    具体的命令如下:

    # df 命令本身是用于报告磁盘的使用情况,经过扩展 -T 选项也可以打印文件系统的类型,
    # -h 表示将使用情况转换为人类可读的
    df -Th # 如果只想查看指定分区的文件系统,也可以这么做
    # 其实就是过滤了一下输出而已,当然使用 sed 和 awk 也能够做到,
    # 这里就是只查看 /dev/sda11 分区的文件系统类型以及使用情况
    df -Th | grep "/dev/sda11"

    输出看起来可能像下面这样:

    可以看到,/dev/sda1 分区所属的文件系统类型为 vfat(虚拟文件分配表,操作系统用于组织和访问在硬件驱动上的文件),/dev/sda11 分区所属的文件系统类型为 ext4(第四代扩展文件系统)

  • fsck 命令

    fsck 命令本身用于检查和修复文件系统,也可以用来检测文件系统所属的类型

    具体使用如下所示:

    # 查看 /dev/sda10 分区所属的文件系统类型,-N 选项表示不要检测文件系统中出现的错误,
    # 只打印出将要做的行为,因此能够得到有关文件系统的一部分信息,包括文件系统的类型
    fsck -N /dev/sda10 # 这里检查分区 /dev/sda10 所属的文件系统类型

    输出如下图所示:

  • lsblk 命令

    lsblk(List Block Devices),用于显示块设备,通过指定 -f 选项即可打印出关于文件系统相关的信息

    具体使用如下所示:

    lsblk -f

    输出结果如下图所示:

    一目了然

  • mount 命令

    mount 命令的本意是挂载一个文件系统,或者是一个 ISO 镜像以及远程的文件系统等其它类似的东西,如果不给 mount 指定任何参数,那么 mount 将会打印有关磁盘分区的信息,其中包括文件系统类型

    具体的使用方式如下所示:

    # 由于磁盘分区的信息有点多,使用 grep 来过滤一下输出是一个很好的想法,当然,awk 和 sed 也是可以的
    mount | grep "^/dev" # 这里的正则表达式表示的是以 /dev 开头的输出内容

    具体的输出结果如下图所示:

  • blkid 命令

    blkid 命令用于定位或者打印文件块的设备属性,也能够输出磁盘的文件系统类型,直接使用即可

    blkid

    输出结果如下:

  • file 命令

    file 命令本身是用于获取一个文件的属性的,但是在 Unix 中,一切皆文件,磁盘系统、外部设备等也不例外,因此通过 file 命令也可以查看文件系统相关的信息

    # 默认情况下,file 命令只会读取文件的类型信息,加上 -s 选项使得 file 命令能够读取 block 或者字符文件,
    # -L 选项使得符号链接能够起到作用
    sudo file -sL /dev/sda11 # -s 选项在读取 block 时必须有 root 权限

    输出结果如下图所示:

  • 使用 /etc/fstab 文件

    /etc/fstab 文件中定义了静态的文件系统信息,包括挂载点、文件系统类型、挂载选项等

    大致的内容如下图所示:

查看块大小[2]

  • 使用 tune2fs 命令

    tune2fs 用于调整和查看 ext 系列的文件系统的参数信息,其中就包括了块大小的信息,如果想要查看分区 /dev/sda11 的块大小信息,可以像下面这么做:

    # -l 选项列出文件系统超级块的参数内容,包括已经设置了的参数和可以被设置的参数
    # 该命令必须有超级用户的权限才能执行
    tune2fs -l /dev/sda11 | grep -i "Block size" # 由于参数过长,使用 grep 来过滤块大小的信息,-i 表示忽略大小写

    输出结果如下:

    可以看到,/dev/sda11 的块大小为 4096 bit,即 4 KB

  • stat 命令

    stat 用于显示文件或者文件系统的状态,检查目录即可查看有关块大小的信息(目录就是一个块)

    具体使用如下:

    # . 可以换成任意的其它目录,使用这种方式不需要超级用户权限
    stat . # 或者直接得到块大小,-f 选项表示显示文件系统状态而不是文件状态;-c 表示按照指定的格式输出;%s 表示输出总计大小的输出格式,
    stat -fc %s .

    输出如下:

  • dumpe2fs 命令

    dumpe2fs 命令用于获取 ext 系列文件系统的信息,具体使用如下所示:

    # 该命令只也需要超级用户的权限,-h 选项表示只显示超级块的信息
    sudo dumpe2fs -h /dev/sda11 | grep -i "Block Size" # 查看分区 /dev/sda11 的信息,使用 grep 过滤掉输出

    输出结果如下图所示:

  • blockdev 命令

    blockdev 表示从命令行中调用 ioctl,具体的使用方式如下所示:

    # 该命令同样需要超级用户的权限;--getbsz 表示打印块大小(单位为 bit)
    sudo blockdev --getbsz /dev/sda11
  • du 检测小文件

    du 本身是用于检测文件在磁盘中的占用空间的,但是写入的文件内容是按照块大小来划分的,因此,只需要检测一个很小的文件的大小,即可得到块单元的大小,具体如下所示:

    echo 1 > test # 创建一个小文件,小于块大小
    du -h test # 由于文件存储是按照块来划分的,因此这个小文件占用的磁盘空间就是一个块的大小

参考:

[1] https://www.tecmint.com/find-linux-filesystem-type/

[2] https://serverfault.com/questions/29887/how-do-i-determine-the-block-size-of-an-ext3-partition-on-linux

Linux 中查看文件系统的块大小的更多相关文章

  1. Linux中查看各文件夹大小命令:du -h --max-depth=1

    Linux中查看各文件夹大小命令:du -h --max-depth=1 du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-siz ...

  2. Linux中查看各文件夹大小(扫盘)

    df -h ./ du -hs ./ du -h /ifs4/BC_RD/USER/lizhixin/my_project/human_chr22 | grep [[:digit:]+]G du [- ...

  3. Linux中查看各文件夹大小命令du -h --max-depth=1

    http://blog.csdn.net/ouyang_peng/article/details/10414499 du -h --max-depth=1  

  4. Linux系统之更改默认块大小

    查看操作系统块大小:#tune2fs  -l /dev/sda1 |grep 'Block size'               ( tune2fs  -l  /dev/sda1可以查看更多相关文件 ...

  5. linux中查看磁盘容量的常用操作

    linux中查看磁盘容量常用操作 实验室有GPU集群,用户跑数据时候跑着跑着会出现集群挂掉的问题,原因就是,在跑数据时,用户上传文件,数据集,系统产生缓存等一系列操作,消耗了集群空间,师兄让我清理下服 ...

  6. inux中查看各文件夹大小命令:du -h --max-depth=1

    du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-de ...

  7. Linux中查看进程占用内存的情况【转】

    转自:http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/ Linux中查看某个进程占用内存的情况,执行如下命令即可,将 ...

  8. 如何在Linux中查看所有正在运行的进程

    如何在Linux中查看所有正在运行的进程 FROM:http://os.51cto.com/art/201101/244090.htm 进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系 ...

  9. Linux中查看文件编码

    在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱 ...

  10. 在Linux中查看文件的编码及对文件进行编码转换

    如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Li ...

随机推荐

  1. RCU的简单认识

    RCU RUC是什么? RCU(Read-Copy-Update)是一种用于并发编程的技术,旨在提供高效且无锁(lock-free)的读操作,同时保证数据一致性和并发性. 也就是说他并不需要锁的机制来 ...

  2. 5 分钟理解 Next.js SSG (Static Site Generation / Static Export)

    5 分钟理解 Next.js SSG (Static Site Generation / Static Export) 在本篇文章中,我们将介绍 Next.js 中的 SSG(静态网站生成)功能,以及 ...

  3. c++枚举详细介绍以及具体用法

    C++ 中的枚举(Enumeration)是一种用于定义命名常量集合的数据类型.枚举可以提高代码的可读性和可维护性,让您可以使用有意义的名称来表示特定的取值,而不必使用原始的数字常量. 枚举的基本语法 ...

  4. 使用CEF(六)— 解读CEF的cmake工程配置

    距离笔者的<使用CEF>系列的第一篇文章居然已经过去两年了,在这么长一段时间里,笔者也写了很多其它的文章,再回看<使用CEF(一)- 起步>编写的内容,文笔稚嫩,内容单薄是显而 ...

  5. 漫谈C#的定时执行程序

    1.写法1 task的lambda表达式 #region 写法1 task的lambda表达式 //static void Main() //{ // // 创建并启动两个任务 // Task tas ...

  6. 【虹科干货】Redis Enterprise vs ElastiCache——如何选择缓存解决方案?

    使用Redis 或 Amazon ElastiCache 来作为缓存加速已经是业界主流的解决方案,二者各有什么优势?又有哪些区别呢? 为了提高 Web 应用程序和数据驱动服务的性能与效率,使用 Red ...

  7. 21.4 Python 使用GeoIP2地图定位

    GeoIP2是一种IP地址定位库,它允许开发人员根据IP地址查找有关位置和地理位置的信息.它使用MaxMind公司的IP地址数据库,并提供一个方便的Python API.GeoIP2可以用于许多不同的 ...

  8. GameFramework摘录 - 1. ReferencePool

    GameFramework是一个结构很优秀的Unity游戏框架,但意图似乎在构建可跨引擎的框架?对要求不高的小型个人(不专业)开发来说有些设计过度了,但其中的设计精华很值得学习. 首先来说一下其中的R ...

  9. Vue 3 中用组合式函数和 Shared Worker 实现后台分片上传(带哈希计算)

    01. 背景 最近项目需求里有个文件上传功能,而客户需求里的文件基本上是比较大的,基本上得有 1 GiB 以上的大小,而上传大文件尤其是读大文件,可能会造成卡 UI 或者说点不动的问题.而用后台的 W ...

  10. 线性表应用:魔术师发牌与拉丁(Latin)方阵(循环链表)

    题目描述: 有黑桃1到13,13张牌,成某种顺序,魔术师可以从1开始数 ,数1,背面朝上的13张牌第一张就是1,然后放到桌面上,然后从1开始数,把第一张放在所有牌下面,数到2,翻开,就是2,再放到桌子 ...