linux(6)
来源:互联网 发布:linux cp怎么用 编辑:程序博客网 时间:2024/05/20 21:44
1.locate - 查找文件的简单方法
速搜索路径名数据库,并且输出每个与给定字符串相匹配的文件名
$ locate bin/zip
$ locate zip | grep bin
2.find - 查找文件的复杂方式
-cmin n 匹配的文件和目录的内容或属性最后修改时间正好在 n 分钟之前。指定少于 n 分钟之前,使用-n,指定多于 n 分钟之前,使用 +n。
-cnewer file 匹配的文件和目录的内容或属性最后修改时间早于那些文件。
-ctime n 匹配的文件和目录的内容和属性最后修改时间在 n*24 小时之前。
-empty 匹配空文件和目录。
-group name 匹配的文件和目录属于一个组。组可以用组名或组 ID 来表示。
-iname pattern 就像 -name 测试条件,但是不区分大小写。
-inum n 匹配的文件的 inode 号是 n。这对于找到某个特殊 inode 的所有硬链接很有帮助。
-mmin n 匹配的文件或目录的内容被修改于 n 分钟之前。
-mtime n 匹配的文件或目录的内容被修改于 n*24 小时之前。
-name pattern 用指定的通配符模式匹配的文件和目录。
-newer file 匹配的文件和目录的内容早于指定的文件。当编写 shell 脚本,做文件备份时,非常有帮助。每次你制作一个备份,更新文件(比如说日志),然后使用 find 命令来决定自从上次更新,哪一个文件已经更改了。
-nouser 匹配的文件和目录不属于一个有效用户。这可以用来查找属于删除帐户的文件或监测攻击行为。
-nogroup 匹配的文件和目录不属于一个有效的组。
-perm mode 匹配的文件和目录的权限已经设置为指定的 mode。mode可以用八进制或符号表示法。
-samefile name 相似于 -inum 测试条件。匹配和文件 name 享有同样 inode号的文件。
-size n 匹配的文件大小为 n。
-type c 匹配的文件类型是 c。
-user name 匹配的文件或目录属于某个用户。这个用户可以通过用户名或用户 ID 来表示。
例子:
1. -type
b 块设备文件
c 字符设备文件
d 目录
f 普通文件
l 符号链接
2. -size
b 512 个字节块。如果没有指定单位,则这是默认值。
c 字节
w 两个字节的字
k 千字节 (1024 个字节单位)
M 兆字节 (1048576 个字节单位)
G 千兆字节 (1073741824 个字节单位)
$ find ~ -type f -name "\*.JPG" -size +1M | wc -l
3.操作符
-and 如果操作符两边的测试条件都是真,则匹配。可以简写为-a。注意若没有使用操作符,则默认使用 -and。
-or 若操作符两边的任一个测试条件为真,则匹配。可以简写为-o。
-not 若操作符后面的测试条件是真,则匹配。可以简写为一个感叹号(!)。
() 把测试条件和操作符组合起来形成更大的表达式。
$ find ~ \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \)
4.预定义的操作
delete 删除当前匹配的文件。
-ls 对匹配的文件执行等同的 ls -dils 命令。并将结果发送到标准输出。
-print 把匹配文件的全路径名输送到标准输出。如果没有指定其它操作,这是默认操作。
-quit 一旦找到一个匹配,退出。
find ~ -type f -name '*.BAK' -delete
5.用户定义的行为
-exec 行为
- -exec command {} ;
command 就是指一个命令的名字, {} 是当前路径名的符号表示,分号是要求的界定符表明命令结束
-ok 行为来代替 -exec,在执行每个指定的命令之前,会提示用户
find ~ -type f -name 'foo*' -ok ls -l '{}' ';'< ls ... /home/me/bin/foo > ? y-rwxr-xr-x 1 me me 224 2007-10-29 18:44 /home/me/bin/foo< ls ... /home/me/foo.txt > ? y-rw-r--r-- 1 me me 0 2008-09-19 12:53 /home/me/foo.txt
-xargs
从标准输入接受输入,并把输入转换为一个特定命令的参数列表
find ~ -type f -name 'foo\*' -print | xargs ls -l-rwxr-xr-x 1 me me 224 2007-10-29 18:44 /home/me/bin/foo-rw-r--r-- 1 me me 0 2008-09-19 12:53 /home/me/foo.txt
6.touch – 更新文件时间
$ find playground -type f -name 'file-B' -exec touch '{}' ';'
注:stat,是一款加大马力的 ls 命令版本。这个 stat 命令会展示系统对某个文件及其属性所知道的所有信息
- linux-6
- linux(6)
- Linux-6
- linux 6
- linux 6
- linux 6
- 初学Linux[6]--Linux的良好特性
- Linux入门基础 #6:Linux用户基础
- Linux入门基础 #6:Linux用户基础
- linux基础学习笔记-6-linux文件系统
- Linux(6)Linux常用命令_export命令
- RedHat Enterprise Linux 6远程登录 Linux
- linux 集图(6)
- Linux循序渐进(6)
- Eclipse+QT4.6(Linux)
- Linux音频设备驱动-6
- Linux Kernel Development (6)
- Linux 安装JDK1.6
- MobileNet教程:用TensorFlow搭建在手机上运行的图像分类器
- 将retrofit2集成到同时具有webservice和http请求的Android项目中的解决方案
- Nginx--官网中文翻译(中英文对比)--5-调试日志A debugging log
- 服务器显卡驱动安装NVIDIA-1080Ti
- dubbo管理控制台安装和使用
- linux(6)
- SEO(搜索引擎优化)浅谈网站站内链接优化的一些策略
- cassandra cql查询
- Python爬虫利器之Beautiful Soup的用法
- Why Did the Cow Cross the Road III
- select选择框通过js触发change事件
- 黑帽技巧(作弊的行为可能让你更好的搜索的到)
- 【PCA与LDA】特征值分解与奇异值分解以及图像压缩处理原理
- css学习笔记之滑动门