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 ...
随机推荐
- Eclipse中快捷键的使用
1:引入包 ctrl+shift+o 2:对输入进行提示:Alt+/ 3: 全局搜索:crtrl + h 4:Eclipse创建方法快捷键Alt+shift+M 5:Eclipse创建局部变量快捷 ...
- HUD 1501 Zipper(记忆化 or DP)
Problem Description Given three strings, you are to determine whether the third string can be formed ...
- 用Qt开发Web和本地混合的应用
QtWebkit 模块使得Qt widget能够通过HTML的object标签嵌入到web页面中,并通过JavaScript代码进行访问,而Qt对象也能相应的访问web页面元素. 将Qt对象插入到we ...
- Android消息循环分析
我们的经常使用的系统中,程序的工作一般是有事件驱动和消息驱动两种方式,在Android系统中,Java应用程序是靠消息驱动来工作的. 消息驱动的原理就是: 1. 有一个消息队列.能够往这个队列中投递消 ...
- django-admin.py失效的问题合集!
今早在命令行运行django-admin.py突然失效了.联想到昨天把Python的版本号由3.4降为2.7,Django由1.65降为1.5,能够是由于当中的修改造成的问题.网上搜了一下解决方式五花 ...
- JavaScript 中的内存和性能、模拟事件(读书笔记思维导图)
由于事件处理程序可以为现代 Web 应用程序提供交互能力,因此许多开发人员会不分青红皂白地向页面中添加大量的处理程序.在 JavaScript 中,添加到页面上的事件处理程序数量将直接关系到页面的整体 ...
- linux使用进阶(一)
本文依据<应该知道的Linux技巧>coolshell上的一篇文章提到的Linux技巧,结合自己掌握的情况进行扩展和总结得来.主要包含下面内容: 一.日常操作 二.数据处理 ...
- freemarker自己定义标签(二)
freemarker自己定义标签 1.自己定义标签 通过自己定义标签,写一个反复指定字符串 2.实现源代码 <html> <head> <meta http-equiv= ...
- POJ题目分类【实在是不知道哪个是原创了】
原地址:http://blog.csdn.net/liuqiyao_01/article/details/8477801 初期:一.基本算法: (1)枚举. (poj1753,poj2965) ...
- android视频库Vitamio
之前尝试自己解码视频,然后播放显示,虽然音视频都可以播放,但是实现不了音视频的同步,所以使用第三方的视频库Vitamio来实现视频播放器功能,这样自己只需要实现播放解码的制作不不要关心底层解码和显示问 ...