ind是大家很常用的1个Linux命令,不过大家一般查寻觅来的并不只有是看看而已,还会有进一步的操作,这一年exec的职能就显现出来了。
exec解释:
-exec
参数前面跟的是command命令,它的终止是以;为了却标识的,所以那句发号施令前边的根据地是不足缺点和失误的,牵记到种种系统中分号会有不相同的意义,所从前边加反斜杠。
{} 花括号表示前边find查搜索来的文件名。
动用find时,只要把想要的操作写在一个文本里,就足以用exec来合作find查找,很有利的。在稍微操作系统中只允许-exec选项施行诸如l
s或ls
-l那样的指令。大大多用户使用那壹选项是为了搜求旧文件并剔除它们。提出在真正实行rm命令删除文件在此以前,最佳先用ls命令看一下,确认它们是所要删除的文本。
exec选项前边跟随着所要推行的下令或脚本,然后是壹对儿{
},2个空格和一个\,最终是二个分店。为了使用exec选项,必要求同时利用print选项。借使证美赞臣(Meadjohnson)(Dumex)下find命令,会意识该命令只输出从当下路径起的相对路径及文件名。
实例一:ls -l命令放在find命令的-exec选项中
命令:
find . -type f -exec ls -l {} \;
输出:
[root@localhost test]# find . -type f -exec ls -l {} \;
-rw-r–r– 1 root root 127 10-28 16:51 ./log2014.log
-rw-r–r– 1 root root 0 10-28 14:47 ./test4/log3-2.log
-rw-r–r– 1 root root 0 10-28 14:47 ./test4/log3-3.log
-rw-r–r– 1 root root 0 10-28 14:47 ./test4/log3-1.log
-rw-r–r– 1 root root 33 10-28 16:54 ./log2013.log
-rw-r–r– 1 root root 302108 11-03 06:19 ./log2012.log
-rw-r–r– 1 root root 25 10-28 17:02 ./log.log
-rw-r–r– 1 root root 37 10-28 17:07 ./log.txt
-rw-r–r– 1 root root 0 10-28 14:47 ./test3/log3-2.log
-rw-r–r– 1 root root 0 10-28 14:47 ./test3/log3-3.log
-rw-r–r– 1 root root 0 10-28 14:47 ./test3/log3-1.log
[root@localhost test]#
说明:
地点的例子中,find命令相称到了当前目录下的兼具普通文书,并在-exec选项中接纳ls
-l命令将它们列出。
实例二:在目录中探寻退换时间在n日从前的文件并删除它们
命令:
find . -type f -mtime +14 -exec rm {} \;
输出:
[root@localhost test]# ll
总计 328
永利皇宫手机版下载 ,-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log
-rw-r–r– 1 root root 33 10-28 16:54 log2013.log
-rw-r–r– 1 root root 127 10-28 16:51 log2014.log
lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log
-rw-r–r– 1 root root 25 10-28 17:02 log.log
-rw-r–r– 1 root root 37 10-28 17:07 log.txt
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxrwxrwx 2 root root 4096 10-28 14:47 test4
[root@localhost test]# find . -type f -mtime +14 -exec rm {} \;
[root@localhost test]# ll
总计 312
-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log
lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 11-12 19:32 test3
drwxrwxrwx 2 root root 4096 11-12 19:32 test4
[root@localhost test]#
说明:
在shell中用其余格局删除文件在此之前,应超越查六柱预测应的文书,一定要小心!当使用诸如mv或rm命令时,可以选取-exec选项的鄂州情势。它就要对各种相称到的文件进行操作从前提醒您。
实例三:在目录中追寻退换时间在n日在此以前的文书并剔除它们,在剔除在此以前先交由提示
命令:
find . -name “*.log” -mtime +5 -ok rm {} \;
输出:
[root@localhost test]# ll
总计 312
-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log
lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 11-12 19:32 test3
drwxrwxrwx 2 root root 4096 11-12 19:32 test4
[root@localhost test]# find . -name “*.log” -mtime +5 -ok rm {}
\;
< rm … ./log_link.log > ? y
< rm … ./log2012.log > ? n
[root@localhost test]# ll
总计 312
-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 11-12 19:32 test3
drwxrwxrwx 2 root root 4096 11-12 19:32 test4
[root@localhost test]#
说明:
在上头的例子中,
find命令在当前目录中寻觅全数文件名以.log结尾、退换时间在四日上述的文件,并删除它们,只但是在剔除从前先提交提示。
按y键删除文件,按n键不删除。

find是大家很常用的2个Linux命令,可是我们一般查寻觅来的并不只是看看而已,还会有愈来愈的操作,那一年exec的效能就显现出来了。 

实例4:-exec中使用grep命令
命令:
find /etc -name “passwd*” -exec grep “root” {} \;
输出:
[root@localhost test]# find /etc -name “passwd*” -exec grep “root”
{} \;
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
[root@localhost test]#
说明:
其它方式的授命都得以在-exec选项中央银行使。
在上头的例证中我们利用grep命令。find命令首先相称全部文件名称叫“
passwd*”的文本,比如passwd、passwd.old、passwd.bak,然后施行grep命令看看在那一个文件中是否存在二个root用户。
实例5:查找文件移动到钦定目录
命令:
find . -name “*.log” -exec mv {} .. \;
输出:
[root@localhost test]# ll
总计 12drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxr-x 2 root root 4096 11-12 22:49 test3
drwxrwxr-x 2 root root 4096 11-12 19:32 test4
[root@localhost test]# cd test3/
[root@localhost test3]# ll
总计 304
-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log
-rw-r–r– 1 root root 61 11-12 22:44 log2013.log
-rw-r–r– 1 root root 0 11-12 22:25 log2014.log
[root@localhost test3]# find . -name “*.log” -exec mv {} .. \;
[root@localhost test3]# ll
总计 0[root@localhost test3]# cd ..
[root@localhost test]# ll
总计 316
-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log
-rw-r–r– 1 root root 61 11-12 22:44 log2013.log
-rw-r–r– 1 root root 0 11-12 22:25 log2014.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxr-x 2 root root 4096 11-12 22:50 test3
drwxrwxr-x 2 root root 4096 11-12 19:32 test4
[root@localhost test]#
实例陆:用exec选项实行cp命令
命令:
find . -name “*.log” -exec cp {} test3 \;
输出:
[root@localhost test3]# ll
总计 0[root@localhost test3]# cd ..
[root@localhost test]# ll
总计 316
-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log
-rw-r–r– 1 root root 61 11-12 22:44 log2013.log
-rw-r–r– 1 root root 0 11-12 22:25 log2014.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxr-x 2 root root 4096 11-12 22:50 test3
drwxrwxr-x 2 root root 4096 11-12 19:32 test4
[root@localhost test]# find . -name “*.log” -exec cp {} test3 \;
cp: “./test3/log201四.log” 及 “test3/log201四.log” 为同一文件
cp: “./test3/log20一三.log” 及 “test3/log201三.log” 为同一文件
cp: “./test3/log二零一一.log” 及 “test3/log二零一三.log” 为同一文件
[root@localhost test]# cd test3
[root@localhost test3]# ll
总计 304
-rw-r–r– 1 root root 302108 11-12 22:54 log2012.log
-rw-r–r– 1 root root 61 11-12 22:54 log2013.log
-rw-r–r– 1 root root 0 11-12 22:54 log2014.log
[root@localhost test3]#

exec解释:

-exec  参数前面跟的是command命令,它的截止是以;为了却标记的,所以那句发号施令前面包车型大巴分行是不可缺失的,思考到各种系统中分号会有两样的含义,所此前面加反斜杠。

{}   花括号表示前边find查搜索来的文件名。

动用find时,只要把想要的操作写在三个文书里,就足以用exec来合作find查找,很便利的。在稍微操作系统中只允许-exec选项实行诸如l s或ls -l那样的下令。大多数用户使用那一选项是为着探究旧文件并剔除它们。提议在真的实施rm命令删除文件此前,最棒先用ls命令看一下,确认它们是所要删除的文书。 exec选项后面跟随着所要试行的吩咐或脚本,然后是1对儿{ },3个空格和一个\,最终是1个根据地。为了使用exec选项,必供给同时选拔print选项。假如证实一下find命令,会意识该命令只输出从最近路径起的相对路线及文件名。

实例壹:ls -l命令放在find命令的-exec选项中 

命令:

find . -type f -exec ls -l {} \;

输出: 

[root@localhost test]# find . -type f -exec ls -l {} \; 

-rw-r–r– 1 root root 127 10-28 16:51 ./log2014.log

-rw-r–r– 1 root root 0 10-28 14:47 ./test4/log3-2.log

-rw-r–r– 1 root root 0 10-28 14:47 ./test4/log3-3.log

-rw-r–r– 1 root root 0 10-28 14:47 ./test4/log3-1.log

-rw-r–r– 1 root root 33 10-28 16:54 ./log2013.log

-rw-r–r– 1 root root 302108 11-03 06:19 ./log2012.log

-rw-r–r– 1 root root 25 10-28 17:02 ./log.log

-rw-r–r– 1 root root 37 10-28 17:07 ./log.txt

-rw-r–r– 1 root root 0 10-28 14:47 ./test3/log3-2.log

-rw-r–r– 1 root root 0 10-28 14:47 ./test3/log3-3.log

-rw-r–r– 1 root root 0 10-28 14:47 ./test3/log3-1.log

[root@localhost test]#

说明: 

地点的例子中,find命令匹配到了当前目录下的有所普通文书,并在-exec选项中应用ls -l命令将它们列出。

实例二:在目录中找找更换时间在n日从前的文书并删除它们

命令:

find . -type f -mtime +14 -exec rm {} \; 

输出:

[root@localhost test]# ll

总计 328

-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log

-rw-r–r– 1 root root     33 10-28 16:54 log2013.log

-rw-r–r– 1 root root    127 10-28 16:51 log2014.log

lrwxrwxrwx 1 root root      7 10-28 15:18 log_link.log -> log.log

-rw-r–r– 1 root root     25 10-28 17:02 log.log

-rw-r–r– 1 root root     37 10-28 17:07 log.txt

drwxr-xr-x 6 root root   4096 10-27 01:58 scf

drwxrwxrwx 2 root root   4096 10-28 14:47 test3

drwxrwxrwx 2 root root   4096 10-28 14:47 test4

[root@localhost test]# find . -type f -mtime +14 -exec rm {} \;

[root@localhost test]# ll

总计 312

-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log

lrwxrwxrwx 1 root root      7 10-28 15:18 log_link.log -> log.log

drwxr-xr-x 6 root root   4096 10-27 01:58 scf

drwxrwxrwx 2 root root   4096 11-12 19:32 test3

drwxrwxrwx 2 root root   4096 11-12 19:32 test4

[root@localhost test]# 

说明:

在shell中用任何措施删除文件在此以前,应超过查六柱预测应的文书,一定要小心!当使用诸如mv或rm命令时,能够动用-exec选项的平安情势。它将在对每种相称到的公文举行操作以前提醒您。 

实例三:在目录中寻觅更动时间在n日以前的文书并剔除它们,在剔除在此以前先交付提醒

命令:

find . -name “*.log” -mtime +5 -ok rm {} \;

输出:

[root@localhost test]# ll

总计 312

-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log

lrwxrwxrwx 1 root root      7 10-28 15:18 log_link.log -> log.log

drwxr-xr-x 6 root root   4096 10-27 01:58 scf

drwxrwxrwx 2 root root   4096 11-12 19:32 test3

drwxrwxrwx 2 root root   4096 11-12 19:32 test4

[root@localhost test]# find . -name “*.log” -mtime +5 -ok rm {} \;

< rm … ./log_link.log > ? y

< rm … ./log2012.log > ? n

[root@localhost test]# ll

总计 312

-rw-r–r– 1 root root 302108 11-03 06:19 log2012.log

drwxr-xr-x 6 root root   4096 10-27 01:58 scf

网站地图xml地图