您的位置:首页 > 运维架构 > Linux

Linux-find命令应用举例-按时间筛选和删除文件

2016-08-28 12:09 585 查看

find参数说明:

find有很多参数是以动作首字母+时间的方式用于按访问、改变、更新时间来筛选文件。

动作表达:

- a(last accessed) 最近一次访问时间

- c(last changed) 最近一次改变时间

- m(last modified) 最近一次修改时间

注意此上的c和m的区别,c是change,包括文件的权限、文件名的更改都算,但是m,只有文件的本身的内容更改才算修改。


时间单位的表达:

-min(minutes) 分钟

-time 小时

-newer 文件最近一次操作(操作类型取决于前面的字母)晚于文件的修改时间


例子:

find /home -atime +10 -name "*.*"

#查找home目录下10天内未访问的文件


这里的-name 参数匹配文件名,
*.*
表示匹配所有文件,atime的值+10,表示10天之前,若是-10表示10天之内,10(没有加减号)表示10天。

执行删除命令

上述操作用于查找文件,查到目标文件后删除

-exec参数,如果查找有返回,可在exec参数后加上需要操作的命令,查找结果用
{}
来代替

查找10天内未被修改的文件并删除命令:

find . -ctime +30 -name "*.*" -exec rm -Rf {} \;


建立脚本

在home目录下建立文件夹cshell,建立文件rm-old.sh

$mkdir ~/cshell

$vi ~/cshell/rm-old.sh


脚本内容:

#!/bin/bash

find . -atime +30 -name "*.*" -exec rm -Rf {} \;
echo "current floder is :";
pwd;
echo "file is deleted."


存入环境变量,打开文件~/.bashrc,在最后一行添加:

export PATH=${PATH}:$HOME/cshell


使环境变量修改生效:

$source ~/.bashrc


在想删除旧文件的地方执行即可:

$rm-old.sh


更多find命令使用举例

1.查找没有777权限的文件

find . -type f ! -perm 777


2.查找只读文件

find . -perm /u=r


3.查找空目录

find . -type d -empty    


4.查找某用户的文件

find . -user cgz


END~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: