Linux下的删除过期文件操作

简介:         在实际的软件开发项目中,经常会有实现删除过期文件的需求。即要求程序能够自动删除多长时间之前生成的文件。本文提供了一个示例代码,为相关的开发工作提供了参考。

        在实际的软件开发项目中,经常会有实现删除过期文件的需求。即要求程序能够自动删除多长时间之前生成的文件。本文提供了一个示例代码,为相关的开发工作提供了参考。

        程序如下(本程序用makefile进行编译):

/**********************************************************************
* 版权所有 (C)2014, Zhou Zhaoxiong。

* 文件名称: TestFileDelete.c
* 内容摘要: 用于演示Linux下过期文件的删除
* 其它说明: 无
* 当前版本: V1.0
* 作        者: Zhou Zhaoxiong
* 完成日期: 20140811

*   版本       修改时间         修改人           修改内容
********************************************************************
*   V1.0        20140811     周兆熊             创建
**********************************************************************/

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


// 数据类型
typedef unsigned char     UINT8;
typedef unsigned int        UINT32;
typedef signed     int        INT32;


/*---------------------------------------------------------------
* 功能描述: 主函数
* 输入参数: 无
* 输出参数: 无
* 返  回  值: 0-执行结束
* 其他说明: 无
* 修改日期       版本号       修改人         修改内容
* ---------------------------------------------------------------
* 20140811     V1.0   Zhou Zhaoxiong     创建
-----------------------------------------------------------------*/
INT32 main()
{
    UINT8   szCmdBuf[1024]                = {0};             // 用于存放Linux命令
    UINT8   szLocalFileSaveDir[1000] = {0};             // 用于存放本地目录  
    UINT32 iFileSaveDays                  = 10;              // 文件保留天数, 可由配置项决定, 这里设为0


    memcpy(szLocalFileSaveDir, "/home/zhouzx/TestDir", strlen("/home/zhouzx/TestDir"));      // 文件的存放路径
    

    // 注意该删除命令的格式
    snprintf(szCmdBuf, sizeof(szCmdBuf) - 1, "find %s -name \"*.txt\" -ctime +%d -exec rm -f {} \\;", szLocalFileSaveDir, iFileSaveDays);       
    printf("Delete the file(s), exec: %s\n", szCmdBuf);


    system(szCmdBuf);          // 执行删除命令
    
    return 0;
}


         makefile文件内容如下:

TestFileDelete : TestFileDelete.c
gcc -c -g TestFileDelete.c
gcc -g -o release/TestFileDelete TestFileDelete.o
rm *.o


       说明:
       (1) 本文中的保留天数和文件存放目录都可以通过配置文件中的配置项来决定,这样可根据需要来灵活配置。
       (2) 要严格按照“find”命令的语法来书写代码,否则该命令不起作用。有关该命令的具体语法规则,请上网查询。



(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)

目录
相关文章
|
6月前
|
Linux Windows
Linux系统中的文件操作
Linux系统中的文件操作
|
存储 Linux 调度
【看表情包学Linux】系统下的文件操作 | 文件系统接口 | 系统调用与封装 | open,write,close 接口 | 系统传递标记位 O_RDWR,O_RDONLY,O_WRONLY...
【看表情包学Linux】系统下的文件操作 | 文件系统接口 | 系统调用与封装 | open,write,close 接口 | 系统传递标记位 O_RDWR,O_RDONLY,O_WRONLY...
111 1
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
308 2
|
12月前
|
存储 Linux C语言
|
6月前
|
Java Linux Shell
【Linux】13. 文件操作
【Linux】13. 文件操作
62 1
|
6月前
|
Linux
基于 Linux 的文件操作 网络编程的最后一环
Linux下万物皆文件 在了解了客户端和服务器的函数调用之后,我们只需要了解下文件操作就能编写出属于自己的客户端和服务器了,还能让他们进行通信。
42 0
|
3月前
|
Linux 数据安全/隐私保护 Perl
解锁Linux高手秘籍:文件操作+命令解析大揭秘,面试场上让你光芒万丈,技术实力惊艳四座!
【8月更文挑战第5天】Linux作为服务器与嵌入式系统的基石,其文件管理和命令行操作是技术人员必备技能。本文从文件操作和基础命令两大方面,深入浅出地解析Linux核心要义,助你在面试中脱颖而出。首先探索文件系统的树状结构及操作,包括使用`ls -la`浏览文件详情、`touch`创建文件、`rm -r`慎删目录、`cp`与`mv`复制移动文件、以及利用`find`搜索文件。接着掌握命令行技巧,如用`cat`、`more`和`less`查看文件内容;借助`grep`、`sed`与`awk`处理文本;运用`ps`、`top`和`kill`管理进程;并通过`chmod`和`chown`管理文件权限。
76 8
|
6月前
|
存储 Linux C语言
Linux系统下C语言的文件操作
Linux系统下C语言的文件操作
70 0
|
4月前
|
Linux Shell Go
Linux中文件操作基本指令大全
Linux中文件操作基本指令大全
|
5月前
|
Linux 网络安全 开发工具
【linux】基础IO |文件操作符
【linux】基础IO |文件操作符
39 0