linux find -exec 用法
模式:
find <dir> -name <expression> -exec <command> {} \;
dir :检索路径
expression: 表达式(通用模式,不是正则表达式)
command: 二级命令
{} : 表示find 每检索出来一条的替代符号,(固定格式)
\; (固定格式)
另:{} \; 这两个固定格式之间是有空格的
如:
[user:public] find . -name test*.g* -exec ls -l {} \;
-rwxr-xr-x 1 user user 1441792 4月 29 23:37 ./lib_stream/simples/test.g711 #此时,{} 表示./lib_stream/simples/test.g711
-rw-r--r-- 1 user user 3331 4月 29 23:32 ./app_dev/test.gps
-rw-r--r-- 1 user user 1441792 4月 29 23:32 ./app_dev/test.g711
[user:public]
我们可以做一下变形:
func() { find . -name $1 -exec ls -l {} \; ; } ; func test*.g*
又如:
[user:public] func() { f $1 -exec ls -l {} \; ; } ; func test*.g*
-rwxr-xr-x 1 user user 1441792 4月 29 23:37 ./lib_stream/simples/test.g711
-rw-r--r-- 1 user user 3331 4月 29 23:32 ./app_dev/test.gps
-rw-r--r-- 1 user user 1441792 4月 29 23:32 ./app_dev/test.g711
[user:public]
好了.把它加到 ~/.bashrc 里做一个别名
alias fll='func() { find . -name $1 -exec ls -l {} \; ; } ; func '
如:
[user:public] fll test*.g*
-rwxr-xr-x 1 user user 1441792 4月 29 23:37 ./lib_stream/simples/test.g711
-rw-r--r-- 1 user user 3331 4月 29 23:32 ./app_dev/test.gps
-rw-r--r-- 1 user user 1441792 4月 29 23:32 ./app_dev/test.g711
[user:public]
command: 这个二级命令可以换成rm -rf 等. 也可以把检索出来文件名改名.