查找文件【TLCL】
locate
locate 执行快速的路径名数据库搜索,输出每个与指定子字符串相匹配的路径名。
locate bin/zip
locate 命令的数据库是updatedb命令创建的。
find
locate只能依据文件名查找文件,而find命令能基于各种各样的属性 搜索一个给定目录(以及它的子目录),来查找文件.
find ~ find 命令接收一个或多个目录名来执行搜索
find ~ -type d -type d 限制了只搜索目录
find 命令支持的常见文件类型测试条件:
b 块特殊设备文件
c 字符特殊设备文件
d 目录
f 普通文件
l 符号链接
find ~ -type f -name "*.JPG" -size +1M | wc -l
-name后面跟通配符模式,根据文件名来搜索。
-size根据文件大小来搜索,+表示大于指定数的文件,-表示小于指定数的文件,没有则精确匹配这个数。
b 512 byte blocks【默认】
c bytes
w two byte words
k Kilobytes
M Megabytes
G Gigabytes
需要数值参数的 =情况下,可以应用以上“+”和“-”符号表示法。
-cmin n 匹配 【内容和属性】修改时间在n分钟前的文件和目录【“+”和“-”符号表示法】
-ctime n 匹配 【内容和属性】修改时间在n*24小时前的文件和目录【“+”和“-”符号表示法】
-cnewer file 匹配 【内容或属性】的最后修改时间晚于file的文件和目录
-mmin n 匹配 【内容】修改时间在n分钟前的文件和目录【“+”和“-”符号表示法】
-mtime n 匹配 【内容】修改时间在n*24小时前的文件和目录【“+”和“-”符号表示法】
-newer file 匹配 【内容】的最后修改时间晚于file的文件和目录
-user name 匹配 属于一个用户的文件和目录【用户名或用户ID来表示】
-group name 匹配 属于一个组的文件和目录【组名或组ID来表示】
-nouser 匹配 不属于一个有效用户的文件和目录
-nogroup 匹配 不属于一个有效的组的文件和目录
-iname pattern 跟-name相似,但不区分大小写。
-name pattern 用指定的通配符模式匹配的文件和目录。
-inum n 匹配inode号是n的文件。这对于找到某个特殊 inode 的所有硬链接很有帮助。
-samefile name 类似于-inum 测试条件。匹配和文件 name 享有同样 inode 号的文件。
-size n 匹配大小为n的文件
-empty 匹配 空文件和目录
-perm mode 匹配权限已经设置为指定的 mode的文件或目录【八进制或符号表示法】
-type c 匹配文件类型是 c 的文件
操作符
-and/-a 两边的测试条件都是真【默认】
-or 两边的任一个测试条件为真
-not Match if the test following the operator is false.
() 这用来控制逻辑计算的优先级,默认从左到右的顺序计算。
find ~ \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \)
expr1 -operator expr2
所有情况下,expr1总会执行,expr2要根据expr1的执行结果
| expr1 的结果 | 操作符 | expr2 is... |
|---|---|---|
| 真 | -and | 总要执行 |
| 假 | -and | 从不执行 |
| 真 | -or | 从不执行 |
| 假 | -or | 总要执行 |
预定义操作
-delete 删除当前匹配的文件
-ls 执行ls -dils命令,将结果输出到标准输出
-print 把匹配文件的全路径名输送到标准输出【默认】
-quit 一旦找到一个,退出
-exec command {} ; {}是当前路径名的符号表示,分号是必要的分隔符表明命令的结束
-ok command {} ; 执行每个指定的命令之前, 会提示用户
花括号和分号对于 shell 有特殊含义,所以它们必须被引起来或被转义。
find ~ -type f -name '*.BAK' -delete【用-print操作替换-delete,确认结果】
find ~ -type f -name 'foo*' -exec ls -l '{}'';'find ~ -type f -name 'foo*' -exec ls -l '{}'+【把末尾的分号改为+,把搜索结果结合为一个参数列表。】xargs 命令从标准输入接受输入,并把输入转换为一个特定命令的参数列表。
find ~ -type f -name 'foo*' -print | xargs ls -l
古怪名字处理方法:
find ~ -iname ‘*.jpg’ -print0 | xargs –null ls -l
使用这项技术,我们可以保证所有文件,甚至那些文件名中包含空格的文件,都能被正确地处理。
其他选项
-depth 先处理目录中的文件,再处理目录自身。
-maxdepth levels 进入目录树的最大深度
-mindepth levels 进入目录树的最小深度
-mount 指示find不要搜索挂载到其他文件系统上的目录
-noleaf 指示 find 程序不要基于自己在搜索 Unix 的文件系统的假设,来优化它的搜索。
查找文件【TLCL】的更多相关文章
- locate 最快的查找文件的命令 NB
我见过最NB的查找文件最快的命令 [root@NB data]# locate teamviewer. /data/Software/teamviewer.i686.rpm /home/ok/.loc ...
- Linux如何搜索查找文件里面内容
在Linux系统当中,如何搜.索查找文件里面的内容呢? 这个应该是系统维护.管理当中遇到最常见的需求.那么下面介绍,总结一下如何搜索.查找文件当中的内容. 搜索.查找文件当中的内容,一般最常用的是gr ...
- Linux下查找文件:which、whereis、locate、find 命令的区别
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.which 查看可执行文件的位置,通过环境变量查whereis 查看文件的位置,通过数据库查,每 ...
- linux 根据文件大小查找文件
inux下的find命令用来查找文件,通过man find就知道它是无所不能的.所以按照文件大小来查找文件就不在话下.从man find搜索size,可以看到如下信息: -size n[cwbkMG] ...
- Linux 利用 locate 和 find 查找文件
Linux 利用 locate 和 find 查找文件 命令 locate 用于快速查找文件.文件夹.此命令并没有在磁盘上查找所有文件,而是在预先建立的数据库里进行搜索.可以使用 updatedb 命 ...
- Linux 查找文件
find 查找目录 -name "文件名"find / -name "php.ini"locate 文件名locate php.ini 一:locate命令 l ...
- 53-whereis 查找文件
查找文件 whereis [options] file 参数 file 是whereis需要查找的文件,这些文件属于原始代码,二进制文件或是帮助文件 选项 -b 只查找二进 ...
- 14-find 查找文件
find - search for files in a directory hierarchy 查找文件 [语法]: find [选项] [参数] [功能介绍] find命令用来在指定目录下查找文件 ...
- Linux里如何查找文件内容
Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件g ...
随机推荐
- 郭大侠与Rabi-Ribi (优先队列)
最近郭大侠迷上了玩Rabi-Ribi这个游戏. Rabi-Ribi呢,是一个打兔子的动作冒险游戏,萌萌哒的兔子在地上跑来跑去,好萌好萌呀~ 这个游戏是这样玩的,郭大侠作为一个主角,拿着一个小锤子,他的 ...
- (三)Solrj4到Solrj5的升级之路
(三)Solrj4到Solrj5的升级之路 Solr5发布了,带来了许多激动人心的新特性,但Solrj的许多接口也发生了变化,升级是痛苦的,但也是必须的,下面就赶紧来看看有哪些代码需要升级吧. 变化1 ...
- SharePoint服务器端对象模型 之 访问文件和文件夹(Part 2)
4.添加文件夹 文件夹的创建方法在文档库和普通列表中稍有不同. 在文档库中,与一般的集合操作相同,直接使用SPFolderCollection的Add(string name)方法即可添加文件夹,例如 ...
- Sql注入_mysql权限入侵
实验:测试不同数据库用户的操作权限 文件读写测试:load_file() ,into outfile 数据库用户账号密码存储在mysql.user下 Mysql最高权限用户root: Mysql普通权 ...
- iOS10通知框架UserNotifications
在iOS10上,苹果将原来散落在UIKit中各处的用户通知相关的代码进行重构,剥离,打造了一个全新的通知框架-UserNotifications.笔者最近在开发公司通知相关的需求,跟着WWDC2016 ...
- You can add an index on a column that can have NULL values if you are using the MyISAM, InnoDB, or MEMORY storage engine.
w https://dev.mysql.com/doc/refman/5.7/en/create-index.html MySQL :: MySQL 5.7 Reference Manual :: B ...
- cvs 文件如何解析?
QList<QStringList> RwCvs::readToList(const QString &path, const QString separator) { QList ...
- python cookbook第三版学习笔记二十:可自定义属性的装饰器
在开始本节之前,首先介绍下偏函数partial.首先借助help来看下partial的定义 首先来说下第一行解释的意思: partial 一共有三个部分: (1)第一部分也就是第一个参数,是一个函数, ...
- python基础实例
1.在Python 语言中,对象是通过引用传递的.在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量. 如:x=1 1这个整形对象被创建,然后将这个对象的引 ...
- 剑指offer 面试8题
面试8题: 题目:二叉树的下一个节点 题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 解题思路:详见剑 ...