Linux下按日期删除文件

来源:互联网 发布:淘宝大学讲师雷雨 编辑:程序博客网 时间:2024/06/18 07:11
    1.
  find / -mtime +n -exec rm -rf {} ;
  2.
  find . -ctime +3 -type f | xargs rm -rf
  find相关参数
  参  数:
  -amin<分钟>  查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
  -anewer<参考文件或目录>  查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。
  -atime<24小时数>  查找在指定时间曾被存取过的文件或目录,单位以24小时计算。
  -cmin<分钟>  查找在指定时间之时被更改的文件或目录。
  -cnewer<参考文件或目录>  查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
  -ctime<24小时数>  查找在指定时间之时被更改的文件或目录,单位以24小时计算。
  -daystart  从本日开始计算时间。
  -depth  从指定目录下最深层的子目录开始查找。
  -expty  寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。
  -exec<执行指令>  假设find指令的回传值为True,就执行该指令。
  -false  将find指令的回传值皆设为False。
  -fls<列表文件>  此参数的效果和指定"-ls"参数类似,但会把结果保存为指定的列表文件。
  -follow  排除符号连接。
  -fprint<列表文件>  此参数的效果和指定"-print"参数类似,但会把结果保存成指定的列表文件。
  -fprint0<列表文件>  此参数的效果和指定"-print0"参数类似,但会把结果保存成指定的列表文件。
  -fprintf<列表文件><输出格式>  此参数的效果和指定"-printf"参数类似,但会把结果保存成指定的列表文件。
  -fstype<文件系统类型>  只寻找该文件系统类型下的文件或目录。
  -gid<群组识别码>  查找符合指定之群组识别码的文件或目录。
  -group<群组名称>  查找符合指定之群组名称的文件或目录。
  -help或--help  在线帮助。
  -ilname<范本样式>  此参数的效果和指定"-lname"参数类似,但忽略字符大小写的差别。
  -iname<范本样式>  此参数的效果和指定"-name"参数类似,但忽略字符大小写的差别。
  -inum<inode编号>  查找符合指定的inode编号的文件或目录。
  -ipath<范本样式>  此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。
  -iregex<范本样式>  此参数的效果和指定"-regexe"参数类似,但忽略字符大小写的差别。
  -links<连接数目>  查找符合指定的硬连接数目的文件或目录。
  -iname<范本样式>  指定字符串作为寻找符号连接的范本样式。
  -ls  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。
  -maxdepth<目录层级>  设置最大目录层级。
  -mindepth<目录层级>  设置最小目录层级。
  -mmin<分钟>  查找在指定时间曾被更改过的文件或目录,单位以分钟计算。
  -mount  此参数的效果和指定"-xdev"相同。
  -mtime<24小时数>  查找在指定时间曾被更改过的文件或目录,单位以24小时计算。
  -name<范本样式>  指定字符串作为寻找文件或目录的范本样式。
  -newer<参考文件或目录>  查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
  -nogroup  找出不属于本地主机群组识别码的文件或目录。
  -noleaf  不去考虑目录至少需拥有两个硬连接存在。
  -nouser  找出不属于本地主机用户识别码的文件或目录。
  -ok<执行指令>  此参数的效果和指定"-exec"参数类似,但在执行指令之前会先询问用户,若回答"y"或"Y",则放弃执行指令。
  -path<范本样式>  指定字符串作为寻找目录的范本样式。
  -perm<权限数值>  查找符合指定的权限数值的文件或目录。
  -print  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称之前皆有"./"字符串。
  -print0  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。
  -printf<输出格式>  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式可以自行指定。
  -prune  不寻找字符串作为寻找文件或目录的范本样式。
  -regex<范本样式>  指定字符串作为寻找文件或目录的范本样式。
  -size<文件大小>  查找符合指定的文件大小的文件。
  -true  将find指令的回传值皆设为True。
  -typ<文件类型>  只寻找符合指定的文件类型的文件。
  -uid<用户识别码>  查找符合指定的用户识别码的文件或目录。
  -used<日数>  查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。
  -user<拥有者名称>  查找符合指定的拥有者名称的文件或目录。
  -version或--version  显示版本信息。
  -xdev  将范围局限在先行的文件系统中。
  -xtype<文件类型>  此参数的效果和指定"-type"参数类似,差别在于它针对符号连接检查。

 
一、按照一定日期格式命名文件


1、按照一定的格式输出日期:
  


    date +"%y%m%d"


    格式说明:
    % : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00-23)
%I : 小时(01-12)
%k : 小时(0-23)
%l : 小时(1-12)
%M : 分钟(00-59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00-60)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面 :
%a : 星期几 (Sun-Sat)
%A : 星期几 (Sunday-Saturday)
%b : 月份 (Jan-Dec)
%B : 月份 (January-December)
%c : 直接显示日期与时间
%d : 日 (01-31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001-366)
%m : 月份 (01-12)
%U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0-6)
%W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000-9999)


2、命名带有日期的文件:filename`date +%y%m%d`,此处的"`"不是单引号。


二、以创建文件日期为界线删除文件


1、find命令简解


       find pathname -options [-print -exec -ok ...]


    pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
    -print: find命令将匹配的文件输出到标准输出。
    -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格。
    -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。


  options:
  -name


按照文件名查找文件。


-perm
按照文件权限来查找文件。


-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。


-user
按照文件属主来查找文件。


-group
按照文件所属的组来查找文件。


-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。


-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。


-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2


查找更改时间比文件file1新但比文件file2旧的文件。
-type


查找某一类型的文件,诸如:


b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。


-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。


-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。


对于时间相关的参数,有以下补充:
 -amin n
  查找系统中最后N分钟访问的文件


  -atime n
  查找系统中最后n*24小时访问的文件


  -cmin n
  查找系统中最后N分钟被改变文件状态的文件


  -ctime n
  查找系统中最后n*24小时被改变文件状态的文件


    -mmin n
  查找系统中最后N分钟被改变文件数据的文件


  -mtime n
  查找系统中最后n*24小时被改变文件数据的文件


2、删除固定日期以前的文件
   find logs -type f -mtime +5 -exec rm {  } \;

原创粉丝点击