在.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 {} \;
暫時寫到這裡,有問題請留言!