Linux下find与exec的使用 | 您所在的位置:网站首页 › linux下find用法 › Linux下find与exec的使用 |
Linux下find与exec的使用
exec命令用于调用并执行指令的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。 exec的基本用法-exec参数后面跟的就是我们想进一步操作的命令,比如rm,mv等等。exec是以分号”;“作为结束标识符的,考虑到各个系统平台对分号的不同解释,我们在分号前再加个反斜杠,便于移植。而在分号前,通常也会有一对花括号**{}**,代表前面find命令查找出来的文件名。 Example 1 使用find命令查找相关文件后,再使用ls命令将它们的详细信息列出来想把当前目录下所有的.o文件全部找出来,并用 ls -l 命令将它们列出来。实现这个需求的命令如下: find . -name "*.o" -type f -exec ls -l {} \;在这里,我们用find 命令匹配到了当前目录下的所有.o文件,并在 -exec 选项中使用 ls -l 命令将它们的详细信息列出来。 Example 2 使用find命令查找相关文件后,再使用rm命令将它们删除想把当前目录下所有的.o文件全部找出来,并用rm命令将它们删除。实现这个需求的命令如下: find . -name "*.o" -exec rm {} \;执行完这个命令后,该目录下所有的.o文件都被删除。 Example 3 使用-exec选项的安全模式,将对每个匹配到的文件进行操作之前提示用户在实例2中,匹配到文件后就立刻执行rm命令,这样操作有些危险,因为如果一旦误操作,有可能会引起灾难性的后果。 exec的安全模式就是为了避免这个问题而产生。它会在匹配到某个文件后,在进行操作之前会先问一下你,经过确认它才会进行相应操作。 同样的实例2的需求,如果采用安全模式的话,命令是这样的: find . -name "*.o" -ok rm {} \; Example 4 搜索匹配到的文件中的关键内容假如现在有个很大型的项目(如Linux内核),想在里面搜索一个含有某关键字的文件。可以使用grep命令检索所有的文件。这样做肯定是可以的,但如果项目很大的话,这样太耗时了,效率太低。 可以先用find命令找到所以相关文件,然后再用grep命令检索那些文件即可。因为已经使用find过滤一遍了,所以这样操作会节约很多时间,提高效率。 命令如下: find . -name "*.h" -exec grep -rns "hello" {} \; Example 5 查找文件并移动到指定目录这个需求就比较简单了。比如现在想把所有的.o文件找出来,然后新他们mv到buil目录。命令如下: find . -name "*.o" -exec cp {} build \; 文章链接 |
CopyRight 2018-2019 实验室设备网 版权所有 |