Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。 
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。

命令格式:find 路径 -命令参数 [输出形式]

-name 按照文件名查找文:

1> find ./ -name test.test    //查找文件名为test.test的文件


2>find ./ -name 'test*'  //查找文件名包含test的文件


3>find ./ -name '*.c'  //查找以‘。c’结尾的文件


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

$ find . -type d


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

find -perm -g=w  //找到具有组读权限的文件


size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计

1>find ~ -size -500k  //查找比500k小的文件


2>find ~ -size +50k   //查找比50k大的文件


3>find ~ -size 2k  //查找文件大小为2k的文件


-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
1>find -maxdepth 2 -name test.test //在root目录下以及深度为1的子目录下查找文件名为test.test的文件


2>find -mindepth 1 -name test.test 

find用"!"来否定参数

find ./ ! -name 'test*' -print    //查找文件名不为test.*的文件


根据文件时间查找:

1.访问时间(accesstime):读取一次文件的内容,该时间便会更新。

find ./ -newer tets.c    //查找比tets.c还要新的文件


2.修改时间(modifytime):对文件内容修改一次便会更新该时间。例如使用vim等工具更改了文件内容并保存后,文件修改时间发生变化

find ./ -mtime -1     //查找小于等于1天内修改过的文件


3.改变时间(changetime):更改文件的属性便会更新该时间,比如使用chmod命令更改文件属性,或者执行其他命令时隐式的附带更改了文件的属性若文件大小等



Logo

更多推荐