需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。
可以使用下面一条命令去完成:
1find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \
这个是根据时间删除。
下面简要解释一下,这句shell命令:
1find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \
/home/lifeccp/dicom/studies :准备要进行清理的任意目录
-mtime:标准语句写法
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \:固定写法,一对大括号+空格+/+
当然也可以根据文件名、根据大小,根据其他不同条件过滤删除,或者修改等,可以考虑sort等命令结合使用。
你的意思是删除某天之前的所有文件对吧?比如21号之前的文件,就是你所说的20日之前的文件,以及20日当天的文件。我没理解错吧?
我像你们一样,首先,通过find查找文件。
然后计算,文件修改日期是否在限定的日期之前,如果是,那么删除文件。
我把命令写到了bash脚本里面。
使用方法:
chmod +x ./del_file_before_that_day.sh #给文件添加执行权限
./del_file_before_that_day.sh "2013-8-21"
回车,
拖动要处理的文件夹到终端,即可完成处理。
楼主,你可以参考一下。顺便说一下,我把rm命令注释掉了,等你测试好脚本,再去除注释吧,以免因为执行环境不同,结果出偏差,给你带来损失。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)