8 shell命令之find
find命令,像cd一样经常使用.只是可能大多数时间仅仅要那么一两个參数就足够使用了.或者说,勉强够用了.可是当我们主动的去翻看一下find的手冊,会发现原来更实用的功能都没实用到.
本文结合自己的使用对find进行简单的介绍.不保证全面,仅列出我在使用中受益颇多的选项.
find dir [option] 指定当前的一个文件夹进行查找.
option能够省略,假设省略的话,find会递归的列出当前文件夹下的全部文件.
经常使用的option有非常多,仅列出经常使用的一部分:
-name 指定文件名称,能够使用通配符,假设使用通配符的话,须要用双引號扩起来.
-type 指定文件的类型,可选的类型包含普通文件f 文件夹文件d 符号文件l 字符设备c 块设备b等.
-size 后面能够接+-N 接+N表示超出N指定大小的文件,-N表示小于N指定的大小.
-newer file 列出当前文件夹以及子文件夹中,新于指定file文件的
-mtime +-N 和size选项类似,+N表示改动时间老于指定的N*24消失.-N表示改动时间新于N*24消失.
-ctime +-N 同上,只是表示的是文件的状态改变的时间,注意find并没有所谓的按创建时间查找
-atime +-N 同上,查找的基准是訪问的时间.
-maxdepth 最大文件夹深度.指定了这个选项,能够避免find无止境的去遍历子文件夹.
-depth 这个选项的意思是处理完一个文件夹,再去遍历子文件夹.
-and 用于条件,能够指定多个条件,返回的结果是满足全部条件的文件
-or 同上,只是返回的是满足条件之中的一个的就可以.
! 放在选项前面,后面能够看到他的使用方法.用来指定不满足条件的文件.
-exec command [option] {} \; 非交互式运行命令,即将find找到的全部文件运行command.注意{}和\之间的空格.
-ok command [option] {] \; 交互式运行命令,将find找出来的文件运行command,可是会提示是否确认.
-delete 将查找出来的文件都删除.
以上应该就能够应付大多数的场景了.之所以用find事实上还有另外一个原因.是我不经意间发现的.当一个文件夹下文件较多的时候.可能你想这样运行命令:ls "*.txt" | xargs cat
看似没有问题的一条命令,却会错误发生.原因是文件太多了.无法用这个命令,这个时候find也会派上用场.想必find肯定有不一样的地方吧.
来看看find在实际中的应用吧.
1. 找出当前文件夹的普通非sh后缀的文件并运行cat
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3AzYWxhaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
2. 列出非sh和txt后缀的文件
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3AzYWxhaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
上面列举了两种可能的写法.注意!和选项之间一定要有空格,否则会报错.注意前后小括号与选项之间也要有空格,否则也会报错.
小括号的作用可能如今体现的不是非常明显.我一时也想不到详细的样例了.总之就是假设没有小括号,有一种场景,多个条件做过滤而且使用-exec选项的时候,-exec选项后面的command只运行最后一个指定选项过滤出来的文件.额,我遇到过这个问题.可是却想不出来场景了.羞愧.
3. 列出当前文件加下大于某个大小的文件
须要注意的是,当没有指定单位的时候,size后面的数字的单位是512byte的一个块.所以不要想当然的觉得是字节.
大致find的使用方法就总结这么多.肯定有非常多不全面的,好在find的选项理解起来并不难,所以对比这选项也能够写出语句来.
8 shell命令之find的更多相关文章
- Hadoop Shell命令大全
hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...
- Shell命令和流程控制
Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...
- 在程序中执行shell命令
在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识. 用 ...
- Linux远程执行Shell命令或脚本
## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...
- HBase基本shell命令
HBase基本shell命令 以下shell命令都是经过测试,正常展示,若有不足,还望指点! 1.创建表 create ‘表名称’,‘列族名称1’,‘列族名称1’create 'test_M_01', ...
- Linux SHELL 命令入门题目答案(一)
1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...
- Linux SHELL 命令入门题目(一)
新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...
- shell命令获取最新文件的名称
最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...
- 【转】Hadoop FS Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...
- [蟒蛇菜谱] Python封装shell命令
# -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLo ...
随机推荐
- IE_haslayout_与众多bug的纠缠
haslayout是什么: haslayout是IE的特有属性,就是has(有)layout(布局样式)! 在IE浏览器中,有的元素是默认“has” layout(有布局样式的),而有的元素是没有la ...
- DLL五篇
http://www.cnblogs.com/NeuqUstcIim/archive/2009/01/12/1374511.htmlhttp://www.cnblogs.com/NeuqUstcIim ...
- Delphi面向对象设计的经验原则(61条)
(1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深 ...
- eclipse Maven构建的project无法公布lib到tomcat的解决方法
问题: eclipse导入基于Maven的web项目时,公布到tomcat中.发现lib文件夹及jar包没有公布过去. 解决方式: eclipse中,选择项目属性Properties --> D ...
- Android UI布局TableLayout
了解字面上TableLayout一个表格样式布局.这种布局将包括以行和列的形式的元件被布置.表格列的数目是列的各行中的最大数目.当然,表格里面的单元格它能够清空. 实例:LayoutDemo 执行效果 ...
- [Android学习笔记]页面布局
线性布局:LinearLayout 1.集成ViewGroup,故可容纳多个View 2.线性布局,可设置水平或者垂直方向 相对布局:RelativeLayout
- NYOJ 914 Yougth的最大化
Yougth的最大化 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 Yougth如今有n个物品的重量和价值各自是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价 ...
- Linux下Apache PHP Mysql默认安装路径
Apache 假设採用RPM包安装.安装路径应在 /etc/httpd文件夹下 Apache配置文件: /etc/httpd/conf/httpd.conf Apache模块路径: /usr/sbin ...
- Wamp环境下配置--Apache虚拟主机
1.首先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#,启用虚拟主机功能 # Virtual hosts In ...
- 读取生产环境go语言的最佳实践展示
近期看了一篇关于go产品开发最佳实践的文章,go-in-procution.作者总结了他们在用go开发过程中的非常多实际经验,我们非常多事实上也用到了.鉴于此,这里就简单的写写读后感,兴许我也争取能将 ...