每一日八个linux命令(1):find命令之exec分分快三

作者:电脑系统

ind是大家很常用的一个Linux命令,但是大家通常查搜索来的并不止是看看而已,还也是有更为的操作,这时候exec的成效就显现出来了。
exec解释:
-exec 参数后边跟的是command命令,它的终止是以;为甘休标识的,所以那句视若等闲前面的总局是不行缺点和失误的,思考到种种系统中分号会有例外的意义,所此前面加反斜杠。
{} 花括号表示前边find查寻觅来的公文名。
利用find时,只要把想要的操作写在四个文件里,就足以用exec来协作find查找,相当低价的。在微微操作系统中只同意-exec选项施行诸如l s或ls -l这样的下令。大相当多客户使用那生机勃勃选项是为了寻觅旧文件并剔除它们。提出在真正进行rm命令删除文件在此之前,最佳先用ls命令看一下,确认它们是所要删除的文本。 exec选项前边跟随着所要推行的吩咐或脚本,然后是后生可畏对儿{ },贰个空格和叁个,最终是一个分店。为了使用exec选项,必需求同期接受print选项。如若证实一下find命令,会意识该命令只输出从当前路径起的相对路线及文件名。
实例1: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命令将它们列出。
实例2:在目录中搜索校订时间在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选项的平安格局。它将要对各样相称到的文件进行操作早前提示您。
实例3:在目录中查找改过时间在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结尾、修改时间在5日以上的文书,并剔除它们,只可是在剔除在此以前先交付提示。 按y键删除文件,按n键不删除。

实例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]#
实例6:用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/log二〇一四.log” 及 “test3/log2016.log” 为同一文件
cp: “./test3/log二〇一一.log” 及 “test3/log二零一一.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]#

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划