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语句实现判断上一个命令是否执行成功. 场 ...
随机推荐
- Excel函数(不定期持续更新)
1.COUNTIF函数 COUNTIF函数用来计算单元格区域内符合条件的单元格个数. COUNTIF函数只有两个参数 COUNTIF(单元格区域,计算的条件) 例如:计算上海市的数量
- flare-spork: 自己维护的Pig on Spark项目
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zbf8441372/article/details/24726501 关于flare-spork 非 ...
- 阿里巴巴Web前端面试的一道JS题目,求解答!!!
题目大概是这种: function outer(){ return inner; var inner = "a"; function inner(){}; inner = 9; } ...
- Server版Linux命令提示符揭秘
一直都在Ubuntu12.04和12.10 Desktop下玩.如今要在Centos6.3 Server版下做开发了,感觉还是非常不一样的. 克服一个有一个不顺利后,有那种站在山顶的 ...
- 【知识碎片】getResource和getResourceAsStream
1. 前言 在Java中获取资源的时候,经常用到getResource和getResourceAsStream,本文总结一下这两种获取资源文件的路径差异. 2.Class.getResource(St ...
- MySql常用命令集Mysql常用命令3
MYSQL常用命令 有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接 MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 有很多朋友虽然安装好了mysql ...
- 转载 AutoFac常见用法总结
第二节:框架前期准备篇之AutoFac常见用法总结 一. 说在前面的话 凡是大约工作在两年以上的朋友们,或多或少都会接触到一些框架搭建方面的知识,只要一谈到框架搭建这个问题或者最佳用法这个问题,势 ...
- log4j2的环境变量使用
官方文档 http://logging.apache.org/log4j/2.x/manual/lookups.html#EnvironmentLookup
- OnlineJudgeFE之前端二次开发
之前我们在这篇文章青岛大学开源OJ平台搭建 讲了关于它的安装和部署. 今天我们讨论如何对其进行二次开发.首先谈谈前端的二次开发. 如果想要对青岛大学的OJ项目进行二次开发,目前我觉得要满足这么几个要求 ...
- nginx的反向代理proxy_pass指令
1. 首先什么是代理服务器?客户机发送请求时,不会直接发送到目的主机,而是先被代理服务器收到,代理服务器收到客服机的请求后,再向目的机发出,目的机就会返回数据给客户机,在返回给客户机之前,会被代理服务 ...