find 查找目录下的文件
1. 命令功能
find命令用于查到目录下的文件,同时也可以调用其它命令执行相应操作。
2. 语法格式
find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
find [-H] [-L] [-P] [-Olevel] [pathname] [expression]
find [选项] [ 路径 ] [操作语句]
常见用法示例:
find path -option [ -print ] [ -exec -ok command ] {} \;
3. 使用范例
1.基础使用范例
范例1: 在/下查找test.txt文件
[root@localhost ~]# find / -name "test.txt"
/root/test.txt
/home/test.txt
范例2: 查找指定时间内修改过的文件,查找在/home目录下1天内访问过的文件
[root@localhost home]# find /home -atime -1 # -atime 表示在多少天访问过;-1:1天内
/home
/home/test.txt
/home/cxf
/home/cxf/.bash_history
/home/cxf/ok
/home/cxf/ok/a
....
范例3: 查找在/home 2天内修改过的文件
/home/cxf/ok/a/b
/home/cxf/ok/a/b/c
/home/cxf/dir2
/home/cxf/dir2/123.txt
/home/cxf/.lesshst
范例4 :用-name指定关键字查找
[root@localhost home]# find /home -mtime -1 -name "*.txt"
/home/test.txt
/home/cxf/dir2/123.txt
范例5: 利用“!”反向查找
[root@localhost home]# find /home -type d #在/home目录下查找目录 –type d表示目录
/home
/home/cxf
/home/cxf/ok
/home/cxf/ok/a
/home/cxf/ok/a/b
/home/cxf/ok/a/b/c
/home/cxf/dir2
/home/DIR
[root@localhost home]# find /home ! -type d #查找不是目录的文件
/home/test.txt
/home/cxf/.bash_history
/home/cxf/.bash_logout
/home/cxf/.bashrc
/home/cxf/.bash_profile
/home/cxf/dir2/123.txt
范例6:按照目录或文件的权限来查找文件 -perm
[root@localhost home]# find /home -perm 755
/home
/home/cxf/ok
/home/cxf/ok/a
范例7:按大小查找文件
[root@localhost home]# find . -size +1000c | xargs ls -lhd
drwxr-xr-x. 4 root root 4.0K Mar 14 22:45 .
drwx------. 4 cxf cxf 4.0K Mar 14 00:16 ./cxf
-rw-------. 1 cxf cxf 4.4K Mar 14 00:18 ./cxf/.bash_history
drwxr-xr-x. 2 root root 4.0K Mar 14 00:17 ./cxf/dir2
范例 8:查找文件时希望忽略某个目录
准备工作:
[root@localhost home]# mkdir /home/data/{dir1,dir2,dir3} -p
[root@localhost home]# ls -l ./data/
total 12
drwxr-xr-x. 2 root root 4096 Mar 15 22:01 dir1
drwxr-xr-x. 2 root root 4096 Mar 15 22:01 dir2
drwxr-xr-x. 2 root root 4096 Mar 15 22:01 dir3
[root@localhost home]# ls ./data/{dir1,dir2,dir3}
./data/dir1:
file1.txt
./data/dir2:
file2.txt
./data/dir3:
file3.txt
查找/home/data目录下的文件,但是需要忽略/home/data/dir2目录
查到对比:
- 查找/home/data目录下的内容
[root@localhost home]# find /home/data
/home/data
/home/data/dir3
/home/data/dir3/file3.txt
/home/data/dir2
/home/data/dir2/file2.txt
/home/data/dir1
/home/data/dir1/file1.txt
- 忽略/home/data/dir2目录
[root@localhost home]# find /home/data -path "/home/data/dir2" -prune -o -print
/home/data
/home/data/dir3
/home/data/dir3/file3.txt
/home/data/dir1
/home/data/dir1/file1.txt
参数说明:find /home/data -path "/home/data/dir2" -prune -o –print
find /home/data 是查找指定目录/home/data下的内容
-path “/home/data/dir2”是查找/home/data/dir2目录
-o 表示取并集不在当前指定目录下查找
-prune表示
-print将匹配的文件输出到标准输出(默认功能,使用中可省略)
范例9 :忽略多个目录
[root@localhost home]# find /home/data \( -path /home/data/dir1 -o -path /home/data/dir3 \) -prune -o -print
/home/data
/home/data/dir2
/home/data/dir2/file2.txt
范例10: 使用user和nouser选项
[cxf@localhost test]$ ls -lh
total 4.0K
drwxrwxr-x. 2 cxf cxf 4.0K Mar 15 22:30 cxf_dir
-rw-rw-r--. 1 cxf cxf 0 Mar 15 22:30 cxf.txt
[root@localhost home]# find /home/cxf -user cxf
/home/cxf
/home/cxf/.bash_history
/home/cxf/test
/home/cxf/test/cxf.txt
/home/cxf/test/cxf_dir
-user 表示有属主的文件;-nouser表示没有属主的文件。-nouser时查找哪些属主账号被删除的文件。 使用-nouser选项不必给出用户。
其中group和nogroup 与user用法一致。
范例11: find正则表达式
-name参数只支持“*”“?”“[]”这三个通配符,碰到复杂要求,就必须用到正则表达式。
find正则表达式语法如下:
find –pathname –repextype “type” –regex “pattern”
示例:
[root@localhost ~]# find / -regex ".*cxf"
/var/spool/mail/cxf
/home/cxf
范例:12: ls –l命令放在find命令的-exec选项中执行
[root@localhost home]# find . -type f -exec ls -l {} \;
-rw-------. 1 cxf cxf 4499 Mar 14 00:18 ./cxf/.bash_history
-rw-rw-r--. 1 cxf cxf 0 Mar 15 22:30 ./cxf/test/cxf.txt
-rw-r--r--. 1 cxf cxf 18 May 11 2016 ./cxf/.bash_logout
-rw-r--r--. 1 cxf cxf 124 May 11 2016 ./cxf/.bashrc
-rw-r--r--. 1 cxf cxf 176 May 11 2016 ./cxf/.bash_profile
-rw-------. 1 cxf cxf 51 Mar 13 11:39 ./cxf/.lesshst
-rw-r--r--. 1 root root 0 Mar 15 22:03 ./data/dir3/file3.txt
-rw-r--r--. 1 root root 0 Mar 15 22:03 ./data/dir2/file2.txt
-rw-r--r--. 1 root root 0 Mar 15 22:03 ./data/dir1/file1.txt
说明:-exec后面跟的是command命令,最后以分号(;)作为结束标志。为了不让分号产生歧义分号前用\转义。
{}的作用:指代前面find命令查找的内容
上面命令可以用:find . -type f |xargs ls –l 替换
find 查找目录下的文件的更多相关文章
- linux递归查找目录下所有文件夹以及文件
相对于ls或者ll,可能find在这个时候更加给力 先看我的目录结构 tree命令是查看目录的结构,而且最后会列出所有的directory的数目以及文件夹的数目...好像我们接下来要做的就没有必要了, ...
- linux 查找目录下的文件内容并替换(批量)
2.sed和grep配合 命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./` 作用:将当前目录(包括子目录)中 ...
- [转载] linux查找目录下的所有文件中是否含有某个字符串
链接自 http://blog.sina.com.cn/s/blog_691a84f301015khx.html,并略加修订. 查找目录下的所有文件中是否含有某个字符串 find .|xargs gr ...
- linux查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" find .|xargs grep -ri "IBM" -l ...
- 查找目录下的所有文件中是否含有某个字符串 linux
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...
- 用shell查找某个目录下最大文件
网上资料学习: 1.查找当前目录下最大文件(包括子目录里文件): find . -type f -exec stat -c "%s %n" {} \; | sort -nr | h ...
- linux查找目录下的所有文件中是否含有某个字符串 (转)
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...
- linux查找目录下的所有文件中是否含有某个字符串 <zhuan>
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...
- Linux查找和替换目录下所有文件中字符串(转载)
转自:http://rubyer.me/blog/1613/ 单个文件中查找替换很简单,就不说了.文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结. 查找文件夹 ...
随机推荐
- SpringCloud 教程 (五) 断路器监控(Hystrix Dashboard)
一.Hystrix Dashboard简介 在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型.断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标.Hystrix ...
- [CSP-S模拟测试]:糊涂图(概率DP)
题目传送门(内部题76) 输入格式 第一行输入三个空格隔开的整数$n,m,s$表示随机加一条边之前的糊涂图的点数,边数,以及起点的编号. 接下来$m$行,每行两个空格隔开的整数$a,b$表示从$a$到 ...
- Day3 01 枚举
枚举:关键字 enum 主要为了限定了选择范围,声明了一组相关的值类型的集合. 1.枚举类型,实质上是整整 2.如果不进行赋值操作,枚举类型从0开始递增. 3.枚举不能定义字段 属性 方法. 例如 ...
- Linux内核调试方法总结之栈帧
栈帧 栈帧和指针可以说是C语言的精髓.栈帧是一种特殊的数据结构,在C语言函数调用时,栈帧用来保存当前函数的父一级函数的栈底指针,当前函数的局部变量以及被调用函数返回后下一条汇编指令的地址.如下图所示: ...
- inode节点用尽处理
linux inode已满解决方法 原文 今天login server的一个网站,发现login后没有生成session.根据以往经验,一般是空间已满导致session文件生成失败. df -h Fi ...
- day03-Python基础
1:函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 函数定义: def sayh ...
- Raudus入门(1)
Raudus入门(1) (2013-08-09 14:38:17) 转载▼ 标签: it 分类: Delphi 基于delphi做web应用,有个Raudus,基于对ext js的封装,可以在delp ...
- react-redux --》react中 最好用的状态管理方式
一.Redux与组件 react-redux是一个第三方插件使我们在react上更方便的来使用redux这个数据架构 React-Redux提供connect方法,用于从UI组件生成容器组件,conn ...
- Tomcat控制台
一般在安装完成Tomcat之后,我们需要验证tomcat是否安装成功,在浏览器的url中输入:http://127.0.0.1:8080/,就会进入如下的页面(表示安装成功): 在上面的左侧顶部,有一 ...
- [mysql相关集锦] 001 - mysql zip安装/The service already exists/MySQL 服务无法启动
本随笔参考了其他博客内容,且在验证有效之下才或誊抄或摘录或加上自己经验组合而成. 参考博客: 1,https://www.jianshu.com/p/413d29b67422 2,https://bl ...