shell脚本--文件查找之find命令
首先是通过文件名称来查找,需要使用一个-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命令的更多相关文章
- 3.shell编程-文件查找之find命令
3.1.语法格式 find [路劲][选项][操作] 选项参数对照表 3.2.-name 查找/etc/目录下以.conf结尾的文件 find /etc/ -name "*.conf&quo ...
- shell脚本--内容查找之grep命令
grep命令可以检索文件中包含关键字(可以使用正则)的行,默认区分大小写. ubuntu@ubuntu:~/test$ cat test.txt this is linux this is Linux ...
- shell 脚本文件Windows传到Linux后编码问题
shell 脚本文件Windows传到Linux后编码问题 下面这个标红的位置出现,是由于脚本从Windows机器上直接传到linux文件格式不对导致的. cat -v a.sh help^M exi ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux输入输出重定向和文件查找值grep命令
Linux输入输出重定向和文件查找值grep命令 一.文件描述符Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2.Linux系统实际上有12个文件描述 ...
- 创建shell脚本文件
简单来说脚本就是将需要执行的命令保存到文本中,按照顺序(由上往下执行),它是解释型的,不需要 编译 脚本格式 #!/bin/bash或者#!/bin/env bash开头 第一个shell脚本:hel ...
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
- shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...
- [shell]上一个命令执行完成,才执行下一个操作 | shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 场 ...
随机推荐
- 让zepto支持slideup(),slidedown()
zepto不支持slideup()和slidedown():使用以下方法可以支持该功能 <div class="slide"> <p> zepto不支持sl ...
- 阿里巴巴Web前端面试的一道JS题目,求解答!!!
题目大概是这种: function outer(){ return inner; var inner = "a"; function inner(){}; inner = 9; } ...
- Spring AOP 和 AspectJ
现如今有许多个可用的 AOP 库,使用这些库需要能够回答以下问题: 是否与现有的或新的应用程序兼容? 在哪里可以使用 AOP ? 如何迅速与应用程序集成? 性能开销是多少? 在本文中,我们将回答这些问 ...
- 记录清除wnTKYg挖矿工木马(守护进程ddg.xxxx)的过程
起因,阿里云多次提醒我的一台服务器有恶意发包行为,且给出了一些解决办法.之前也没太在意,就按照解决办法处理了一下.然后过一段时间,还是提示有此行为. 猜肯定是中了木马了,开始以为是被肉鸡了拿来做DDo ...
- eureka client服务续约源码分析
必备知识: 1.定时任务 ScheduledExecutorService public class demo { public static void main(String[] args){ Sc ...
- Android学习之基础知识十二 — 第二讲:网络编程的最佳实践
上一讲已经掌握了HttpURLConnection和OkHttp的用法,知道如何发起HTTP请求,以及解析服务器返回的数据,但是也许你还没发现,之前我们的写法其实是很有问题的,因为一个应用程序很可能会 ...
- char.IsLetter的使用
先看一下下面的代码,大家会觉得控制台输出什么? 输出:Chiantxt .对吗? 因为你看到char.IsLetter这个方法的文字的注释是这样写的: 但实际上输出的结果是这样的: ??? 怎么还输 ...
- 一篇自己都看不懂的CDQ分治&整体二分学习笔记
作为一个永不咕咕咕的博主,我来更笔记辣qaq CDQ分治 CDQ分治的思想还是比较简单的.它的基本流程是: \(1.\)将所有修改操作和查询操作按照时间顺序并在一起,形成一段序列.显然,会影响查询操作 ...
- VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书
原文:VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书 dll引用小结 一.dll与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library” ...
- odoo订餐系统之订单设计
订餐系统的主要功能便是用户下单部分,这里我们分为表头mylunch_order和表体mylunch_order_line两张主要的数据表,表头主要记录订单的一些通用信息,比如下单的操作人员 下单日期 ...