首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux下获取文件大小

在Linux下,获取文件大小可以通过多种命令实现:

一、基础命令

  1. ls -l命令
    • 基础概念
      • ls是用于列出目录内容的命令,-l选项表示以长格式列出文件信息。
    • 优势
      • 简单直接,可以同时查看文件的权限、所有者、修改时间等多种信息,除了文件大小。
    • 示例
      • 如果有一个名为test.txt的文件,在终端中执行ls -l test.txt,输出结果类似-rw - r--r-- 1 user group 1024 Jan 1 00:00 test.txt,其中1024就是文件大小(以字节为单位)。
  • du -h命令
    • 基础概念
      • du(disk usage)用于估算文件和目录占用的磁盘空间大小,-h选项表示以人类可读的格式(如K、M、G)显示结果。
    • 优势
      • 对于目录非常有用,可以递归地计算目录下所有文件和子目录的总大小,并且显示结果更直观。
    • 示例
      • 对于名为mydir的目录,执行du -h mydir,如果mydir下有一些小文件总共占用1.5M空间,可能输出1.5M mydir
  • stat命令
    • 基础概念
      • stat用于显示文件或文件系统的状态信息,包括文件大小等多种详细属性。
    • 优势
      • 可以获取非常详细的文件信息,不仅仅是大小,对于需要深入了解文件属性的情况很有用。
    • 示例
      • 对于example.txt文件,执行stat example.txt,输出结果中有一行类似Size: 2048,这就是文件大小(字节为单位)。

二、编程方式获取文件大小(以C语言为例)

  1. 基础概念
    • 在C语言中,可以使用系统调用stat函数来获取文件的状态信息,其中包含文件大小。
  • 示例代码
  • 示例代码

", st.st_size); } else { perror("stat"); } return 0; }

代码语言:txt
复制
- 在这个示例中:
  - 首先定义了一个`stat`结构体变量`st`。
  - 然后调用`stat`函数,传入文件名和结构体变量的地址。
  - 如果函数成功执行(返回值为0),就可以从结构体中的`st_size`成员获取文件大小(以字节为单位)。如果失败则使用`perror`打印错误信息。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • PG获取文件大小的方式

    1、通过元命令获取表文件大小 通过\dt+可以得到该表大小。该元命令会转换成SQL语句去执行,实际上是通过pg_table_size函数进行获取。...通过这个方式计算表大小包括fsm、vm文件大小,如果有toast索引,还包括toast表大小。那么具体获取文件大小的方式是什么呢?...看calculate_relation_size函数:最终通过stat函数来获取,这个得到的是文件大小,而不是占用磁盘大小。同样,对于toast索引也是通过这种方式计算得到。...该函数对于序列、索引或者分区索引,直接通过smgrnblocks->mdnblocks获得,对于表、toast和物化视图,调用函数table_relation_size计算出文件大小然后除以一页大小得到多少页

    1.7K10

    Linux下获取进程的PID

    Linux系统中常常需要获取进程的pid进行一些操作,而Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程,因此在获取进程 pid 上二者也有所区别...ps 命令ps命令是最常用的Linux命令之一,用于获取当前系统中的进程信息,ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。...交互式 Shell 获取 pid在ps命令的基础上,如果我们知道进程的name,那么可以利用grep来获取其pid(需要通过-v来过滤掉grep本身),并通过awk显示出来。...当然,Linux系统也支持直接查找:最简单的方法是使用pgrep:`pgrep -f name`如果需要查找到 pid 之后kill掉该进程,还可以使用pkill:`pkill -f name`如果是可执行程序的话...,可以直接使用pidof:`pidof name`Bash Shell 脚本获取进程 pid在使用 Shell 脚本获取进程 pid 时,如果直接使用上述命令,可能会出现多个 pid 结果,例如:#!

    1.1K10

    Linux下du和ls计算的文件大小竟然差10倍?

    事情是这样的,昨天开发让我给他倒个日志,由于历史原因吧,没有日志系统,直接上服务器看了下他要的日志大小 [root@xxxxx apps]# du -hs smartorder.log 9.0G smartorder.log...看了下,不小,我问开发,要整个日志吗,还是可以按日期给他切一下,他说要整个,我想着日志文件,通常压缩完也没多少,就压缩了一下,压缩完确实也不是太大 [root@xxxxx apps]# du -hs...后来想起来,du查找的时候是按照block大小计算的,计算的是实际占用磁盘空间的大小,但即便这样,按道理,和ls命令查出来的大小不会差太多,但是凡事有例外 linux中有一种文件叫做sparse file...spare=WHEN,WHEN的值为auto、always、never,默认为auto,如果设置为never则会自动填数据 同样支持sparse的命令还有tar、cpio、rsync,下面通过tar试下

    1.2K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券