linux获取文件大小例子

本文提供了一个使用C语言编写的简单示例程序,该程序能在Linux环境下读取指定文件并返回其大小。主要通过fopen打开文件,fseek定位到文件末尾,再通过ftell获取当前位置即为文件长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下程序是linux c写的获取文件大小的例子,主要用到 fopen, fseek , ftell等函数。

/*************************************************************************
    > File Name: len_file.c
    > Author: haha
    > Mail: @163.com 
    > Created Time: 2015年01月20日 星期二 14时47分36秒
 ************************************************************************/

#include<stdio.h>
#include<stdlib.h>

int main(int argc, char **argv)
{
    FILE *fd;
    long file_len;
    if(argc != 2 )
    {
        perror("error is occur");
        exit(0);
    }

    fd = fopen(argv[1], "rb");
    fseek(fd , 0L, SEEK_END);
    file_len = ftell(fd);
    printf("%ld\n", file_len);
    fclose(fd);
    return 0;
}



<think>嗯,用户问的是在Linux系统中查看文件大小的命令。我需要先回忆一下常用的方法,然后根据提供的引用资料来组织回答。 首先,用户提到的引用里有多个方法,比如du、ls、stat、find结合sort等。我得确保每个命令的用法都正确,并且给出例子。 记得用户需要结构清晰的回答,分步骤说明。可能得分成几个常用命令,每个命令下详细说明,包括语法、示例和注意事项。比如,用du命令查看文件或目录大小,ls命令查看文件大小,stat查看详细信息,还有组合命令查找大文件并排序。 还要注意用户提到的格式要求,行内数学表达式用$...$,但这里可能用不到数学公式。不过要确保LaTeX语法正确,虽然这里主要是命令行内容,可能不需要。不过要检查是否有特殊符号需要转义。 然后,用户需要生成相关问题,可能的问题包括如何递归查看目录大小、如何限制查找文件的大小范围、如何按时间排序等,这些都可以从引用中找到线索。 需要确保引用标记正确,每个方法后面加上对应的引用来源,比如[^1][^3][^4]等。还要注意中文回答,避免使用专业术语过多,保持易懂。 最后,检查是否有遗漏的命令或用户可能关心的其他方面,比如不同命令的区别,或者如何组合使用命令来实现更复杂的需求。比如,find和du结合查找大文件并排序,这在引用1中有提到,应该包含进去。 总结一下,回答的结构应该是分点列出每个命令,给出示例,注意事项,然后相关问题。确保覆盖用户的需求,并且引用正确。</think>### Linux查看文件大小的常用命令及方法 在Linux系统中查看文件大小是系统管理的基础操作,以下是5种常用方法及详细说明: #### 一、`du`命令(推荐) 1. **查看指定文件大小** ```bash du -h filepath ``` 示例:$ du -h ~/Downloads/jdk-8u60-linux-x64.tar.gz$ 输出:$ 173M /home/user/Downloads/jdk-8u60-linux-x64.tar.gz$[^3] 2. **统计目录总大小** ```bash du -sh /path/to/directory ``` 示例:$ du -sh /var/log$ 输出:$ 1.2G /var/log$[^4] 3. **递归查看目录内各文件大小** ```bash du -h --max-depth=1 /path ``` 参数说明: - `-s`:显示总大小 - `-h`:人性化单位(KB/MB/GB) - `--max-depth=N`:目录层级深度[^4] #### 二、`ls`命令(快速查看) ```bash ls -lh file ``` 示例:$ ls -lh backup.tar.gz$ 输出:$ -rw-r--r-- 1 user group 2.5G Mar 1 10:00 backup.tar.gz$ 特点: - `-l` 显示详细信息 - `-h` 自动转换单位 - `-S` 按大小降序排列(适用于目录) #### 三、`stat`命令(查看元数据) ```bash stat file ``` 输出包含: $ Size: 1024000$(字节) $ Blocks: 2000$(磁盘占用块数) 优势:可获取精确字节数[^3] #### 四、`find`组合命令(查找大文件) ```bash find / -type f -size +1G -exec ls -lh {} \; | sort -k5 -hr ``` 解析: - `-size +1G`:查找大于1GB的文件 - `sort -k5 -hr`:按第5列(大小)逆序排列[^1] #### 五、`df`命令(查看磁盘空间) ```bash df -h ``` 输出示例: $ Filesystem Size Used Avail Use% Mounted on$ $ /dev/sda1 50G 38G 12G 76% /$ 功能:查看分区整体使用情况[^4] --- ### 注意事项 1. `du`与`ls`的区别: - `du`统计磁盘实际占用(包含文件系统块) - `ls`显示文件实际大小 2. 目录大小计算应优先使用`du`,`ls`对目录的统计不准确[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值