find命令小结
find命令小结
find命令用于在系统中查找文件,配合 -exec 选项或 xargs命令还能对查找到得文件执行一些列的自动化操作。
基本格式:find [-H] [-L] [-P] [path...] [expression]
path指定起始搜索路径,可以指定多个,exprssion表示搜索表达式,包含选项及选项参数。
[TOC]
表达式
-depth n (mac os)
: 指定只遍历深度为 n 的目录(相对起始目录),例如 1 表示只在当前目录搜索,2 表示只在当前目录的子目录中搜索,以此类推。
-maxdepth n
: 指定最大遍历深度为 n。
-maxdepth n
: 指定最小遍历深度为 n。
-name pattern
: 搜索文件名匹配 pattern 的文件,例如 '*.txt' 匹配所有以 '.txt' 结尾的文件。
-path pattern
: 搜索路径名匹配 pattern 的文件。
-type t
: 搜索文件类型为 t 的文件。t 的可选值为:
b block special(块设备文件)
c character special(字符设备文件)
d directory(目录)
f regular file(普通文件)
l symbolic link(符号链接)
p FIFO(管道)
s socket(套接字)
-ls
: 输出结果包括权限,大小,路径,创建者,创建时间等信息,类似命令 ls -dgils的输出结果。
i 前缀
: 有很多带 i 前缀的选项,表示忽略大小写。例如 -iname,-ilname, -ipath, -iregex, -inum等。
-exec command [argument ...] ;
: 执行命令 command,执行的上下文路径为搜索起始路径,这个表达式必须已分号结束。command可以带多个参数,如果命令名字或者参数名字出现 '{}' ,'{}'将会被当前文件的路径代替。需要注意的是在shell中执行此命令的时候,需要转义分号,可以用引号引号引起来或者在分号前面加 “\”号。
-execdir command [argument ...] ;
: 同 -exec,区别是执行命令的上下文路径是当前文件所在的路径。
关于输出
输出的文件路径格式跟指定的起始路径格式相关,如果起始路径的格式是相对路径,输出的结果就是相对路径,如果起始路径是绝对路径,输出的结果也是绝对路径。
$ pwd
/tmp
$ find . -name '*.txt'
./1.txt
./2.txt
./3.txt
$ find /tmp -name '*.txt'
/tmp/1.txt
/tmp/2.txt
/tmp/3.txt
基本用法举例
使用 '-exec' 执行自动化操作
把找出的文件拷贝到另外一个目录
# 先创建几个文件和目录
$ touch 1.txt 2.txt 3.txt
$ mkdir xxx $ find . -maxdepth 1 -name '*.txt' -exec cp {} xxx \;
$ ls xxx
1.txt 2.txt 3.txt # 这个更有趣,只要出现{}的地方都被当前文件的路径替换掉
$ find . -maxdepth 1 -name '*.txt' -exec cp {} xxx/{}.bak \;
$ ls xxx
1.txt 1.txt.bak 2.txt 2.txt.bak 3.txt 3.txt.bak # 创建目录也可以这样
$ rm -rf xxx
$ makdir xxx && find . -maxdepth 1 -name '*.txt' -exec cp {} xxx \;
$ ls xxx
1.txt 2.txt 3.txt
注意的是,当把文件拷贝到 xxx 目录后,find 继续找 xxx目录下的 .txt 文件,然后执行拷贝,相当于:
$ cp xxx/1.txt xxx/1.txt
因为是同一个文件,所以会打印出警告信息,这里用 “-maxdepth 1” 指定只在起始目录查找,从而避免在 xxx 目录中查找。
find命令小结的更多相关文章
- Solaris 命令 小结
Solaris 命令 小结 prstat -a 系统进程监控 Solaris 10默认的shell是sh,可以改成bash #useradd -m -d /home/dave dave -s /bin ...
- 常用Linux命令小结
常用Linux命令小结 Linux下有很多常用的很有用的命令,这种命令用的多了就熟了,对于我来说,如果长时间没有用的话,就容易忘记.当然,可以到时候用man命令查看帮助,但是,到时候查找的话未免有些临 ...
- (转载)linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
linux下tar.gz.tar.bz2.zip等解压缩.压缩命令小结 bz2 tgz z等众多压缩文件的压缩与解压方法,需要的朋友可以参考下 1) Linux下最常用的打包程序就是tar了,使用ta ...
- [转]MySQL数据库备份和还原的常用命令小结
MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...
- Nslookup命令小结
Nslookup命令小结 0.nslookup的定义 Nslookup是由微软发布用于对DNS服务器进行检测和排错的命令行工具. 两种模式: 一.非交互模式 nslookup –qt=类型 ...
- [转帖]Windows批处理(cmd/bat)常用命令小结
Windows批处理(cmd/bat)常用命令小结 非常值得学习的文档 先放这里 有时间做实验, 转载自:“趣IT”微信公共号 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于 ...
- [转帖]Linux 硬件和系统配置查看命令小结
https://blog.csdn.net/strongwangjiawei/article/details/8208825 转帖了不少 发现自己记住的还是不多.. Linux 硬件和系统配置查看命令 ...
- docker命令小结
文档:docker命令小结.note链接:http://note.youdao.com/noteshare?id=54015b76db9ae764182cb921e348b7fc&sub=DD ...
- gdb命令小结
GDB命令小结 gdb <filename> : 调试指定程序文件 r : run 的简写,运行被调试程序, 如果此前没有下过断点,则执行完整个程序:如果有断点, 则程序暂停在第一个可用断 ...
随机推荐
- nodejs 实现 http proxy 透明转发
这两天需要安装一个Linux虚拟机,接下来要通过 yum 来安装需要的软件. 因单位的网络需要通过代理才能访问外网,公司代理服务器:proxy.xxxx.com,给yum增加了proxy设置: # v ...
- 一个Java线程死锁的例子
package com.lk.B; public class Test4 { private static final Object o1 = new Object(); private static ...
- [转]Displaying standard DataTables in MVC
本文转自:http://stackoverflow.com/questions/2243898/displaying-standard-datatables-in-mvc Controller act ...
- 转: ffmpeg 的deom列表
http://blog.csdn.net/leixiaohua1020/article/details/47072861
- poj动态规划列表
[1]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 13 ...
- 【转】对于移动APP测试的一个小技巧
目标:目前越来越多的应用要支持移动设备,html5的推出,方便了页面对移动app的支持,那么我们该如何有效的去测试同时支持app和web的代码?web的测试可以使用浏览器的一些工具来辅助测试,比如ff ...
- Mac 在命令行快速切换目录 mark
转自: http://www.ccvita.com/520.html ,略修改. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/often-used/di ...
- 【CSS3】---first-of-type选择器+nth-of-type(n)选择器
first-of-type选择器 “:first-of-type”选择器类似于“:first-child”选择器,不同之处就是指定了元素的类型,其主要用来定位一个父元素下的某个类型的第一个子元素. 示 ...
- 【CSS3】---结构性伪类选择器-root+not+empty+target
结构性伪类选择器—root :root选择器,从字面上我们就可以很清楚的理解是根选择器,他的意思就是匹配元素E所在文档的根元素.在HTML文档中,根元素始终是<html>. 示例演示: 通 ...
- struts2-获取WEB资源
1.什么是WE资源 2.为什么访问WEB资源 3.如何访问WEB资源 与Servlet API解耦的方式: 使用ActionContext: 实现XxxAware接口 以ApplicationAwar ...