find命令扩展
为什么要使用find命令?
Linux系统中有着成千上万的文件,如果你想要找到自己想要的文件,一款查找软件是必不可少的,而locate是根据其生成的数据库进行查找,虽然速度会略快,但非实时查找,有些新的文件或目录是匹配不到的,而且locate是模糊匹配,而find命令为实时查找,且为精确匹配,如果你对目录的权限够大,想查什么就查什么!
find命令的语法格式:
find [查找路径] [查找条件] [处理动作]
1.1 方法一 |xargs
通过|xargs将前面命令的执行结果传给后面。
[root@master ]# find /opt/ -type f -name "*.sh" |xargs ls -l
-rw-r--r--. 1 root root 7 Aug 17 17:00 /opt/test/del.sh
-rw-r--r--. 1 root root 8 Aug 17 19:35 /opt/test.sh
-rw-r--r--. 1 root root 7 Aug 17 17:00 /opt/t.sh
1.2 方法二 $()
$()先运行里面的命令,把显示到屏幕上的结果留下来
[root@master]# ls -l $(find /opt/ -type f -name "*.sh")
-rw-r--r--. 1 root root 7 Aug 17 17:00 /opt/test/del.sh
-rw-r--r--. 1 root root 8 Aug 17 19:35 /opt/test.sh
-rw-r--r--. 1 root root 7 Aug 17 17:00 /opt/t.sh
1.3 方法三 -exec {} \;
-exec 是find 里面自带参数,{}表示find命令找到的文件
[root@master]# find /opt/ -type f -name "*.sh" -exec ls -l {} \;
-rw-r--r--. 1 root root 7 Aug 17 17:00 /opt/t.sh
-rw-r--r--. 1 root root 8 Aug 17 19:35 /opt/test.sh
-rw-r--r--. 1 root root 7 Aug 17 17:00 /opt/test/del.sh
[root@master]# find /aaemzl/ -type f -name "*.sh"-exec ls -l {} \;
-rw-r--r-- 1 root root 5 Oct 12 01:10 /aaemzl/test/del.sh
-rw-r--r-- 1 root root 5 Oct 12 01:10 /aaemzl/test.sh
-rw-r--r-- 1 root root 5 Oct 12 01:10 /aaemzl/t.sh