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\n" {} \;
13、要列出所有长度为零的文件
find . -empty
14、查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk
find . -path "./sk" -prune -o -name "*.txt" -print