shell三剑客之find

Posted 永远保持学习的动力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell三剑客之find相关的知识,希望对你有一定的参考价值。

查找以ini结尾的文件
[[email protected] app]# find / -name "*.ini"
/app/myblog/config.ini

exec解释:
-exec 参数后面跟的是 command 命令,它的终止是以‘;‘为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
{} 花括号代表前面find查找出来的文件名。


find 命令匹配到了当前目录下的所有普通文件,并在 -exec 选项中使用 ls -l 命令将它们列出。
[[email protected] tmp]# find . -type f -exec ls ‘{}‘ ‘;‘
./pip-mQo5bs-unpack/uwsgi-2.0.15.tar.gz
./pip-VnYL06-unpack/Mezzanine-4.2.3-py2.py3-none-any.whl
./pip-RKCLec-unpack/Pygments-2.2.0-py2.py3-none-any.whl

[[email protected] tmp]# find . -type f -exec ls -l {} \;
-rw-r--r-- 1 root root 10240 9月 12 21:15 ./pip-mQo5bs-unpack/uwsgi-2.0.15.tar.gz
-rw-r--r-- 1 root root 194560 9月 12 20:30 ./pip-VnYL06-unpack/Mezzanine-4.2.3-py2.py3-none-any.whl

在目录中查找更改时间在5天以前后缀为pl的文件并删除
[[email protected] tmp]# find . -name "*.pl" -mtime +5 -exec rm {} \;

给出删之前的提示:
[[email protected] tmp]# find . -name "*.pl" -ok rm {} \;

查找/etc目录下的passwd文件,然后匹配文字中是否有root
[[email protected] tmp]# find /etc/ -name "passwd" -exec grep "root" {} ‘;‘
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

匹配当前目录的log文件,然后将这些log文件拷贝到/app目录中
[[email protected] tmp]# find . -name "*.log" -exec cp {} /app \;


查找/etc目录下的文件包含127.0.0.1
[[email protected] app]# find /etc -name \* -type f -print |xargs grep "127.0.0.1"
[[email protected] app]# find /etc -type f -print |xargs grep "127.0.0.1"
/etc/ntp.conf:restrict 127.0.0.1
/etc/sysconfig/network-scripts/ifcfg-lo:IPADDR=127.0.0.1
/etc/security/access.conf:#+ : root : 127.0.0.1
/etc/postfix/main.cf:#debug_peer_list = 127.0.0.1
/etc/cloud/templates/hosts.redhat.tmpl:127.0.0.1 {{fqdn}} {{hostname}}
/etc/hosts:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

[[email protected] tmp]# ls
Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)> pip-bVOjXv-unpack pip-Ya5KyM-unpack
a.txt pip-HOQ99u-unpack pythondy.log
b.txt

将当前目录下所有的.txt文件变为.txt_bak
[[email protected] tmp]# find . -name "*.txt" -exec mv {} {}_bak \;
[[email protected] tmp]# ls
Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)> pip-bVOjXv-unpack pip-Ya5KyM-unpack
a.txt_bak pip-HOQ99u-unpack pythondy.log
b.txt_bak

[[email protected] tmp]# find . -type -exec grep hello ‘{}‘ ‘;‘ -print

 



































以上是关于shell三剑客之find的主要内容,如果未能解决你的问题,请参考以下文章

SHELL用法六(Find语句)

shell-2-三剑客?四剑客了解一下

shell三剑客之awk

shell三剑客之awk

linux12shell编程 --> 三剑客之grep命令

shell 脚本——第七节课 三剑客之sed语句