Linux中find 命令
来源:互联网 发布:网络交易管理办法 pdf 编辑:程序博客网 时间:2024/06/02 07:30
find 是linux命令行工具箱中很棒的命令,之前总结了grep命令一些常见的用法,find 与grep的区别在于find用于查找文件或目录,grep用于在文件中查找匹配的文本(字符串)。此命令提供了相当多的查找条件,功能很强大。
find常见用法:
find path -option [ -print ] [ -exec -ok command ] {} \;
find 常用的命令参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出
-name filename #查找名为filename的文件 -iname忽略大小写
-path 使用通配符来匹配文件路径
-regex 使用正则表达式来匹配文件路径
-type 根据文件类型进行搜索
-size 根据文件大小来搜索
! 否定参数的含义
-newer 找出比参考文件更新的所有文件
1.根据文件名或正则表达式进行搜索
#find /home/seven -name "*.txt" -print
#find . \( -name "*.txt" -o -name "*.pdf" \) -print
#find / -path "*/python/*" -print
#find / -regex ".*\(\.py\|\.sh\)$"
#find /home/seven! -name "*.txt" -print 匹配所有不以.txt结尾的文件
2.根据文件类型的搜索
普通文件 f
符号链接 l
目录 d
字符设备 c
块设备 b
套接字 s
FIFO p
#find . -type d -print
#find /tmp -name py* -type l
3.根据文件时间进行搜索
Linux 文件系统中的每一个文件都有三个时间戳
访问时间(-atime)
修改时间(-mtime)
变化时间(-ctime):文件元数据(例如权限或所有权)最后一次改变的时间
基于分钟的:-amin -mmin -cmin
例:(1)找出最近三天改过的所有文件
#find . -type f -atime -3 -print
(2)找出三天前改过的文件
#find . -type f -atime 3 -print
(3)找出修改时间超过3天的文件
#find . -type f -atime +3 -print
(4) 找出比file.txt更新时间更近的文件或目录
#find . -newer file.txt
4.根据文件大小进行搜索
b 块(512字节) c 字节 w字 (2字节)K ,M,G
#find . -type f -size +2M
5.删除匹配的文件
例:删除当前目录下所有.txt文件
#find . -type f "*.txt" -delete
6.根据文件权限和所有权来进行搜索
(1)列出/root 目录内属于用户seven 的文件或目录
#find /root -user seven
(2)列出/home内不属于本地用户的文件或目录
#find /root -nouser seven
同样还有参数 group nogroup
(3) 列出web服务器没有设置好执行权限的php文件
#find . -type f -name "*.php" ! -perm 644 print
7根据目录深度进行搜索
find 命令在搜索时会遍历所有的子目录
使用-maxdepth -mindepth参数可以限制find 命令遍历的目录深度
只允许find 在当前目录中查找的话把 -maxdepth 设置为1
查找深度距离当前目录至少两个子目录的所有文件-mindepth 设置2
注:为了提高搜索效率 -maxdepth应该作为第三个参数在 -type之前出现。
8.find 通过-exec 执行命令
-exec command {} \; —–将查到的文件执行command操作,{} 和 \;之间有空格
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,
在执行每一个命令之前,都会给出提示,让用户来确定是否执行
{}是一个与-exec参数搭配使用的特殊字符串,对于每一个匹配的文件 {}都会被替换成相应的文件名
例: (1)找到所有的.txt文件拼接起来,并输入到README.txt文件中
#find . -type f -name "*.txt"-exec cat {} \;>README.txt
(2)将这一个星期改过的文件复制到 /old目录下
#find . -type f -mtime -7 -exec cp {} old \;
( 3) -exec 只能接受一个命令,无法直接使用多个命令,但可以把多个命令写在一个shell脚本中,
然后在-exec中使用这个脚本
-exec ./commands.sh {} \;
(4) -exec 与printf 结合起来可以生成有用的输出信息。
# 划闪
- Linux中find命令
- Linux中find命令
- Linux中find 命令
- Linux中find命令
- linux中find命令
- linux中find命令详解
- linux 中find命令详解
- linux 中find 命令 用法
- linux中find命令使用
- Linux中find命令使用
- Linux中find命令大全
- Linux中搜索命令find
- Linux中find命令用法
- linux中find命令详解
- linux中find命令详解(转)
- linux中grep与find命令
- linux系统中find命令符
- linux中find命令的使用
- 前端 ajax的例子
- PHP中file_exists与is_file,is_dir的区别
- LayoutParams 简单理解
- java获取磁盘空间大小
- Cocos2d-x 3.x Shader变暗和变灰
- Linux中find 命令
- C#—数据类型
- BAE python-worker 服务
- 聚合与组合的区别
- 给vim增加Vundle和NERDTree插件
- PHP二分查找
- 仿微信通讯录的Demo----PinnedHeaderListView
- Intellij IDEA 快捷键工具大全
- 代码设置selector和color