find 命令

常用find命令

1、命令格式:

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

2、命令参数:

pathname:.表示当前目录,/表示系统根目录

-exec:find命令将匹配的文件执行该参数给出的shell命令。如linux中查找文件名中带abc的png图片并删除“find / -name '*abc*.png' -exec rm -rf {} ;”或者“find . -type f -name "*abc*.png" | xargs rm -rf
”或者“find . -type f -name "*abc.png" -delete”

-ok:和-exec类似,只不过以一种更安全的模式来执行该参数所给出的shell命令。

3、命令选项

-name:按照文件名查找。

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

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

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

-mtime -n +n 按照文件的更改日期查找,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。

-type:查找某一类型的文件,诸如:
b -块设备文件
d -目录
c -字符设备文件
p -管道文件
l -符号链接文件
f -普通文件

4、关于时间的参数

-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件

5、当前目录及子目录下查找所有以.txt和.pdf结尾的文件

find . -name "*.txt" -o -name "*.pdf"

6、匹配文件路径或者文件

find /usr/ -path "*local*"

7、找出比file.log修改时间更长的所有文件

find . -type f -newer file.log

8、当前目录下搜索出权限为777的文件

find . -type f -perm 777

9、查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中

find . -type f -name "*.txt" -exec cat {} ;> all.txt

10、将30天前的.log文件移动到old目录中

find . -type f -mtime +30 -name "*.log" -exec cp {} old ;

11、找出自己家目录下所有的.txt文件并删除

find $HOME/. -name "*.txt" -ok rm {} ;

12、找出当前目录下所有.txt文件并以“File:文件名”的形式打印出来

find . -type f -name "*.txt" -exec printf "File: %s " {} ;

13、要列出所有长度为零的文件

find . -empty

14、查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk

find . -path "./sk" -prune -o -name "*.txt" -print

 

原文地址:https://www.cnblogs.com/wuxiaoyu-1537/p/8241720.html