Linux下的删除过期文件操作
2014-08-11 18:37
357 查看
在实际的软件开发项目中,经常会有实现删除过期文件的需求。即要求程序能够自动删除多长时间之前生成的文件。本文提供了一个示例代码,为相关的开发工作提供了参考。
程序如下(本程序用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,欢迎关注!)
程序如下(本程序用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,欢迎关注!)
相关文章推荐
- 【转载】linux中误删除oracle数据文件的恢复操作
- Linux定时删除过期文件
- 批处理实现自动删除过期文件的定期操作
- Linux系统之文件目录创建、删除操作
- 【Unix/Linux】【命令】【文件,目录操作工具】删除文件或目录——rm命令
- 【Linux】rm删除数据文件的恢复操作
- Linux文件误删除恢复操作
- Linux文件操作命令(创建、复制、剪切、删除)
- linux 对目录和文件的删除操作理解
- Linux--向已删除的文件中进行写操作
- Linux下ORACLE误删除数据文件恢复操作
- linux学习入门3——linux文件基本操作(linuxcast.net)(复制、移动、重命名、创建、删除文件及文件夹)
- Linux文件误删除恢复操作
- Linux定时删除过期文件
- 【转载】linux中误删除oracle数据文件的恢复操作
- Linux创建、删除文件和文件夹等操作命令
- Linux文件误删除恢复操作
- Linux中对文件删除函数unlink的操作
- linux下的一些基本文件操作(移动、删除、解压)
- Linux文件误删除恢复操作