首先是通过文件名称来查找,需要使用一个-name参数。

查询以  .txt结尾的文件,和以 t 开头的文件:

ubuntu@ubuntu:~/test$ ls
one.txt three.txt two.txt
ubuntu@ubuntu:~/test$ find ./ -name '*.txt'
./two.txt
./one.txt
./three.txt
ubuntu@ubuntu:~/test$ find ./ -name 't*'
./two.txt
./three.txt

  其中  ./ 表示当前目录,后面还可以跟上一些简单的正则表达式,如下面的例子,注意此时正则表达式需要使用引号括起来。

ubuntu@ubuntu:~/test$ touch 123.txt
ubuntu@ubuntu:~/test$ find ./ -name '[a-z]'* #以一个字母开头的文件
./two.txt
./one.txt
./three.txt
ubuntu@ubuntu:~/test$ find ./ -name '[1-9]'* #以一个数字1-9开头的文件
./123.txt
ubuntu@ubuntu:~/test$

  

可以通过权限值来查找,此时要使用-perm 参数

ubuntu@ubuntu:~/test$ ls -l
total 0
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 one.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ chmod 777 one.txt
ubuntu@ubuntu:~/test$ find -perm 777
./one.txt
ubuntu@ubuntu:~/test$ find -perm 664
./two.txt
./three.txt
./123.txt
ubuntu@ubuntu:~/test$

  

还可以通过文件类型来查找,使用-type参数,其中f表示文件,d表示目录

ubuntu@ubuntu:~/test$ mkdir dirOne
ubuntu@ubuntu:~/test$ ls -l
total 4
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirOne
-rwxrwxrwx 1 ubuntu ubuntu 0 1月 20 21:18 one.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ find ./ -type f
./two.txt
./one.txt
./three.txt
./123.txt
ubuntu@ubuntu:~/test$ find ./ -type d
./
./dirOne
ubuntu@ubuntu:~/test$

  

可以根据文件创建者查找,使用-user参数

ubuntu@ubuntu:~/test$ ls -l
total 4
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirOne
-rwxrwxrwx 1 ubuntu ubuntu 0 1月 20 21:18 one.txt
-rw-r--r-- 1 root root 0 1月 20 21:42 RootTouch
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ find -user root
./RootTouch
ubuntu@ubuntu:~/test$ find -user ubuntu
.
./two.txt
./one.txt
./three.txt
./123.txt
./dirOne
ubuntu@ubuntu:~/test$

  

可以根据文件更改时间来查找,使用-mtime参数。

find ./ -mtime -5   #查找当前目录下,5天以内更改过的文件或者目录
find ./ -mtime +3   #查找当前目录下,最后一次更改时间在3天以前的文件

  

根据文件大小来查找,使用-size参数。注意如果要是用文件区间,则每一个文件大小的前面都要加上-size参数,和mtime类似。还要注意的是,1兆字节使用1M,不要使用1m

ubuntu@ubuntu:~/test$ ls -l
total 8
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirOne
-rwxrwxrwx 1 ubuntu ubuntu 15 1月 20 22:01 one.txt
-rw-r--r-- 1 root root 0 1月 20 21:42 RootTouch
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ find ./ -size -10c #小于10字节的文件
./two.txt
./RootTouch
./three.txt
./123.txt
ubuntu@ubuntu:~/test$ find ./ -size +10c -size -20c #小于20字节,大于10字节的文件
./one.txt
ubuntu@ubuntu:~/test$

  

find的这些参数是可以配合使用的,还可以使用xargs命令配合使用,将结果作为xargs后面命令的输入。

shell脚本--文件查找之find命令的更多相关文章

  1. 3.shell编程-文件查找之find命令

    3.1.语法格式 find [路劲][选项][操作] 选项参数对照表 3.2.-name 查找/etc/目录下以.conf结尾的文件 find /etc/ -name "*.conf&quo ...

  2. shell脚本--内容查找之grep命令

    grep命令可以检索文件中包含关键字(可以使用正则)的行,默认区分大小写. ubuntu@ubuntu:~/test$ cat test.txt this is linux this is Linux ...

  3. shell 脚本文件Windows传到Linux后编码问题

    shell 脚本文件Windows传到Linux后编码问题 下面这个标红的位置出现,是由于脚本从Windows机器上直接传到linux文件格式不对导致的. cat -v a.sh help^M exi ...

  4. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  5. Linux输入输出重定向和文件查找值grep命令

    Linux输入输出重定向和文件查找值grep命令 一.文件描述符Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2.Linux系统实际上有12个文件描述 ...

  6. 创建shell脚本文件

    简单来说脚本就是将需要执行的命令保存到文本中,按照顺序(由上往下执行),它是解释型的,不需要 编译 脚本格式 #!/bin/bash或者#!/bin/env bash开头 第一个shell脚本:hel ...

  7. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  8. shell脚本中判断上一个命令是否执行成功

    shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...

  9. [shell]上一个命令执行完成,才执行下一个操作 | shell脚本中判断上一个命令是否执行成功

    shell脚本中判断上一个命令是否执行成功  shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 场 ...

随机推荐

  1. 让zepto支持slideup(),slidedown()

    zepto不支持slideup()和slidedown():使用以下方法可以支持该功能 <div class="slide"> <p> zepto不支持sl ...

  2. 阿里巴巴Web前端面试的一道JS题目,求解答!!!

    题目大概是这种: function outer(){ return inner; var inner = "a"; function inner(){}; inner = 9; } ...

  3. Spring AOP 和 AspectJ

    现如今有许多个可用的 AOP 库,使用这些库需要能够回答以下问题: 是否与现有的或新的应用程序兼容? 在哪里可以使用 AOP ? 如何迅速与应用程序集成? 性能开销是多少? 在本文中,我们将回答这些问 ...

  4. 记录清除wnTKYg挖矿工木马(守护进程ddg.xxxx)的过程

    起因,阿里云多次提醒我的一台服务器有恶意发包行为,且给出了一些解决办法.之前也没太在意,就按照解决办法处理了一下.然后过一段时间,还是提示有此行为. 猜肯定是中了木马了,开始以为是被肉鸡了拿来做DDo ...

  5. eureka client服务续约源码分析

    必备知识: 1.定时任务 ScheduledExecutorService public class demo { public static void main(String[] args){ Sc ...

  6. Android学习之基础知识十二 — 第二讲:网络编程的最佳实践

    上一讲已经掌握了HttpURLConnection和OkHttp的用法,知道如何发起HTTP请求,以及解析服务器返回的数据,但是也许你还没发现,之前我们的写法其实是很有问题的,因为一个应用程序很可能会 ...

  7. char.IsLetter的使用

    先看一下下面的代码,大家会觉得控制台输出什么? 输出:Chiantxt  .对吗? 因为你看到char.IsLetter这个方法的文字的注释是这样写的: 但实际上输出的结果是这样的: ??? 怎么还输 ...

  8. 一篇自己都看不懂的CDQ分治&整体二分学习笔记

    作为一个永不咕咕咕的博主,我来更笔记辣qaq CDQ分治 CDQ分治的思想还是比较简单的.它的基本流程是: \(1.\)将所有修改操作和查询操作按照时间顺序并在一起,形成一段序列.显然,会影响查询操作 ...

  9. VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书

    原文:VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书 dll引用小结 一.dll与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library” ...

  10. odoo订餐系统之订单设计

    订餐系统的主要功能便是用户下单部分,这里我们分为表头mylunch_order和表体mylunch_order_line两张主要的数据表,表头主要记录订单的一些通用信息,比如下单的操作人员 下单日期 ...