Linux中的find大法

来源:互联网 发布:python hsv颜色直方图 编辑:程序博客网 时间:2024/05/29 18:10

在.nx(MAC OS和各种linux)系统中,find方法可谓是广泛中运用,好的find方法规则匹配算法又是高效执行的关键。现在我把find方法常用的搜索方法做下总结:
1 搜索当前文件夹及其子目录中的所有文件

$ find . 或者find . -print
2 搜索指定文件夹及其子目录中的所有文件,以test文件夹为例:

$ find ./test
如果按文件名查找app.js,可以使用-name参数

$ find ./test -name ‘app.js’
3 不区分大小写查找 ‘app.js’,参数-iname,

$ find ./test -iname ‘aPP.Js’
可以匹配到

./test/subdir/app.js
./test/app.js
4 反向匹配,例如,匹配扩展名不为’*.php’的文件

$ find ./test -not -name ‘*.php’
匹配的结果应该是这样的

./test
./test/app.js
./test/subdir
./test/subdir/package.json
5 匹配多个规则,匹配’*.js’和’package.json’

$find ./test -name ‘*.js’ ! -name ‘package.json’
这样就可以匹配到

./test/src/jasmine/functionlist.js
./
也可以另一个参数-o达到同样的效果

$find ./test -name ‘*.js’ -o -name ‘package.json’
6 匹配文件或者目录
只匹配文件

$find ./test -type f -name ‘package*’
只匹配目录

$find ./test -type f -name ‘node_modules’
7 从多个目录查找

$find ./test ./test2 -type f -name ‘package*’
8 查找隐藏文件

$find ~ -type d -name ‘name*’
9 可以感觉具体的权限/用户/用户组/大小查找,参数-perm , -user, -group,-size

10 相当于ls功能

$ find ./test -exec ls -ld {} \;
11删除匹配到的文件

$find ./test -type f -name ‘package.tmp’ -exec rm -r {} \;
暂时写到这里,有问题请留言!

0 0
原创粉丝点击