Shell find 实例
在Shell编程工具中,四剑客工具的使用更加的广泛,Shell编程四剑客包括:find、sed、grep、awk,熟练掌握四剑客会对Shell编程能力极大的提升。
四剑客之Find工具实战,Find工具主要用于操作系统文件、目录的查找,其语法参数格式为:
find path -option [ -print ] [ -exec -ok command ] { } \;
-name filename #查找名为filename的文件;
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件;
-size n[c] #查长度为n块[或n字节]的文件;
-perm #按执行权限来查找;
-user username #按文件属主来查找;
-group groupname #按组来查找;
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前;
-atime -n +n #按文件访问时间来查找文件;
-ctime -n +n #按文件创建时间来查找文件;
-mmin -n +n #按文件更改时间来查找文件,-n指n分钟以内,+n指n分钟以前;
-amin -n +n #按文件访问时间来查找文件;
-cmin -n +n #按文件创建时间来查找文件;
-maxdepth #查找目录级别深度。
Find工具-name参数案列
# find . -type f -name "linuxprobe.txt" -exec rm -f {} \;
find /data/ -name "*.txt" #查找/data/目录以.txt结尾的文件;
find /data/ -name "[A-Z]*" #查找/data/目录以大写字母开头的文件;
find /data/ -name "test*" #查找/data/目录以test开头的文件;
使用!来过滤不想要的结果
[root@www ~]# find / -name "zlib*.rpm"
/mnt/dvd/Packages/zlib-1.2.7-17.el7.x86_64.rpm
/mnt/dvd/Packages/zlib-devel-1.2.7-17.el7.x86_64.rpm
[root@www ~]# find / -name "zlib*.rpm" ! -name "zlib-devel*"
/mnt/dvd/Packages/zlib-1.2.7-17.el7.x86_64.rpm
在当前目录查找文件使用的名字
在当前目录下,查找所有名称为linuxprobe.txt的文件
# find . -name linuxprobe.txt ./linuxprobe.txt
在home目录下查找文件
查找home目录下所有文件名为linuxprobe.txt的文件
# find /home -name linuxprobe.txt /home/linuxprobe.txt
查找文件忽略文件名的大小写
在特定目录下查找名称为linuxprobe.txt的文件,忽略文件名大小写
# find /home -iname linuxprobe.txt ./linuxprobe.txt ./Linuxprobe.txt
查找特定的目录
根目录下查找目录名为linuxprobe的目录
# find / -type d -name linuxprobe /linuxprobe
查找指定目录下的php文件
查找当前目录下的名为linuxprobe.php的文件
# find . -type f -name linuxprobe.php ./linuxprobe.php
查找指定目录下的所有PHP文件
# find . -type f -name "*.php" ./linuxprobe.php ./login.php ./index.php
Find工具-type参数案列
find /data/ -type d #查找/data/目录下的文件夹; find /data/ ! -type d #查找/data/目录下的非文件夹; find /data/ -type l #查找/data/目录下的链接文件。 find /data/ -type d|xargs chmod 755 -R #查目录类型并将权限设置为755; find /data/ -type f|xargs chmod 644 -R #查文件类型并将权限设置为644; |
Find工具-size参数案列
find /data/ -size +1M #查文件大小大于1Mb的文件; find /data/ -size 10M #查文件大小为10M的文件; find /data/ -size -1M #查文件大小小于1Mb的文件; |
查找到文件大小为100M的文件并删除
# find / -size +100M -exec rm -rf {} \;
查找文件类型为mp3格式并且大小为100M的文件,然后删除
# find / -type f -name *.mp3 -size +10M -exec rm {} \; #常用find操作,通过find出指定目录下的特定类型特定名称的文件,然后进行修改,移动,删除等操作。
查找大小为50M的文件
# find / -size 50M
查找文件大小在50M-100M之间的文件
# find / -size +50M -size -100M
Find工具-mtime参数案列
atime,access time 文件被读取或者执行的时间;
ctime,change time 文件状态改变时间;
mtime,modify time 文件内容被修改的时间;
find /data/ -mtime +30 -name "*.log" #查找30天以前的log文件;
find /data/ -mtime -30 -name "*.txt" #查找30天以内的log文件;
find /data/ -mtime 30 -name "*.txt" #查找第30天的log文件;
find /data/ -mmin +30 -name "*.log" #查找30分钟以前修改的log文件;
find /data/ -amin -30 -name "*.txt" #查找30分钟以内被访问的log文件;
find /data/ -cmin 30 -name "*.txt" #查找第30分钟改变的log文件。
Find工具-perm参数案列
找到SUID文件
# find / -perm /u=s
#find / -perm /g=s
找到只读文件
# find / -perm /u=r
找到可执行文件
# find / -perm /a=x
找到权限为777的文件并改为644
# find / -type f -perm 0777 -print -exec chmod 644 {} \;
找到权限为777的目录并改为755
# find / -type d -perm 777 -print -exec chmod 755 {} \;
查找权限为777的文件
查找当前目录下所有权限为777的文件
# find . -type f -perm 0777 -print
查找权限不是777的文件
查找根目录下所有权限不是777的文件
# find / -type f ! -perm 777
查找权限为664的文件
# find / -perm 2644
18.找到指定类型的文件并删除
# find . -type f -name "*.txt" -exec rm -f {} \; OR # find . -type f -name "*.mp3" -exec rm -f {} \;
19.查找空文件
# find /tmp -type f -empty
20.查找空目录
# find /tmp -type d -empty
21.查找所有的隐藏文件
# find /tmp -type f -name ".*"
22.查找指定用户家目录下的指定文件
# find / -user root -name linuxprobe.txt
23.查找指定用户家目录下的所有文件
# find /home -user linuxprobe
24.查找指定组中的所有文件
# find /home -group developer
25.查找指定用户家目录下的指定文件并忽略大小写
# find /home -user linuxprobe -iname "*.txt"
26.查找最近50天修改过的文件
# find / -mtime 50
27.查找最近50天被访问过的文件
# find / -atime 50
28.查找最近50天到100天之间修改过的文件
# find / -mtime +50 –mtime -100
29.查找过去一小时内修改过的文件
# find / -cmin -60
30.查找过去一小时内修改过的文件
# find / -mmin -60
31.查找过去一小时内被访问过的文件
# find / -amin -60
相关文章
- 技术分享 | MySQL Shell 定制化部署 MySQL 实例
- pycharm怎么打开database_数据库在生活中的实例
- 遗传算法的应用实例python实现_遗传算法Python解决一个问题
- 【Linux Shell】你知道bash shell和dash shell的区别吗?
- SHELL – shell 脚本获取本机ip并将ip复制给变量待用详解程序员
- 编程探索Linux下的Shell编程世界(linux里的shell)
- 深入探索Linux下Shell的设置(linux设置shell)
- Linux 与 Shell 互补指南(linux和shell)
- 学习Linux:命令编辑器与Shell编程(linux命令编辑器与shell编程)
- 教程C语言操作Oracle数据库的实例教程(coracle实例)
- 一步一步学习:Shell脚本执行Linux命令初探(shell脚本执行linux命令)
- Linux定时自动运行Shell脚本,极大提升工作效率(linux定时执行shell脚本)
- Linux下Shell编程:用技术掌控系统(linux中shell编程)
- Shell 命令行操作 Redis简单高效(shell 操作redis)
- 采用哈希槽提高Redis性能实例分享(哈希槽redis实例)
- PHP中实现汉字转区位码应用源码实例解析
- javascript中的对象创建实例附注释
- asp.net上传图片并作处理水印与缩略图的实例代码
- C#实现微信公众号群发消息(解决一天只能发一次的限制)实例分享
- 详解mysql的limit经典用法及优化实例
- jquery设置元素相对于另一个元素的top值(实例代码)
- js中this的用法实例分析
- C#中使用UDP通信实例