linux find -exec 用法

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 等. 也可以把检索出来文件名改名.

你可能感兴趣的:(linux,find,exec)