find命令用于在目录结构中搜索文件,并执行指定的操作。find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。
find指令用于在目录结构中查找文件,并履行指定的操作。此指令供给了相当多的查找条件,功用很强壮。
语法:find [开端目录] 寻觅条件 操作
阐明:find指令从指定的开端目录开端,递归地查找其各个子目录,查找满意寻觅条件的文件并对之采纳相关的操作。 该指令供给的寻觅条件可所以一个用逻辑运算符 not、and、or 组成的复合条件。逻辑运 算符 and、or、not 的意义为:
(1) and:逻辑与,在指令顶用“-a”表明,是体系缺省的选项,表明只有当所给的条 件都满意时,寻觅条件才算满意。例如:
find –name ’tmp’ –xtype c -user ’inin’
% 该指令寻觅三个给定条件都满意的一切文件
(2) or:逻辑或,在指令顶用“-o”表明。该运算符表明只需所给的条件中有一个满意 时,寻觅条件就算满意。例如:
find –name ’tmp’ –o –name ’mina*’
% 该指令查询文件名为’tmp’或是匹配’mina*’的一切文件。
(3) not:逻辑非,在指令顶用“!”表明。该运算符表明查找不满意所给条件的文件 。例如:
find ! –name ’tmp’
% 该指令查询文件名不是’tmp’的一切文件。
需求阐明的是:当运用许多的逻辑选项时,能够用括号把这些选项括起来。为了防止Shell自身对括号引起误解,在话号前需求加转义字符“\”来去除括号的意义。例:
find \(–name ’tmp’ –xtype c -user ’inin’ \)
该指令的各选项意义如下:
首要,下列各个选项中的 n 值能够有三种输入方法,假定 n 为20,则:
+20 表明20今后(21,22,23等)
-20 表明20曾经(19,18,17等)
20 表明正好是20
以称号和文件特点查找。
-name ’字串’ 查找文件名匹配所给字串的一切文件,字串内可用通配符 *、?、[ ]。
-lname ’字串’ 查找文件名匹配所给字串的一切符号链接文件,字串内可用通配符 *、?、[ ]。
-gid n 查找归于ID号为 n 的用户组的一切文件。
-uid n 查找归于ID号为 n 的用户的一切文件。
-group ’字串’ 查找归于用户组名为所给字串的一切的文件。
-user ’字串’ 查找归于用户名为所给字串的一切的文件。
-empty 查找巨细为 0的目录或文件。
-path ’字串’ 查找路径名匹配所给字串的一切文件,字串内可用通配符*、?、[ ]。
-perm 权限 查找具有指定权限的文件和目录,权限的表明能够如711,644。
-size n[bckw] 查找指定文件巨细的文件,n 后边的字符表明单位,缺省为 b,代表512字节的块。
-type x 查找类型为 x 的文件,x 为下列字符之一:
b 块设备文件
c 字符设备文件
d 目录文件
p 命名管道(FIFO)
f 一般文件
l 符号链接文件(symbolic links)
#p#s socket文件
-xtype x 与 -type 根本相同,但只查找符号链接文件。
以时刻为条件查找
-amin n 查找n分钟曾经被拜访过的一切文件。
-atime n 查找n天曾经被拜访过的一切文件。
-cmin n 查找n分钟曾经文件状况被修改正的一切文件。
-ctime n 查找n天曾经文件状况被修改正的一切文件。
-mmin n 查找n分钟曾经文件内容被修改正的一切文件。
-mtime n 查找n天曾经文件内容被修改正的一切文件。
可履行的操作
-exec 指令称号 {} 对契合条件的文件履行所给的Linux 指令,而不问询用户是否需求履行该指令。
{}表明指令的参数即为所找到的文件;指令的结束有必要以“ \;”完毕。
-ok 指令称号 {} 对契合条件的文件履行所给的Linux 指令,与exec不同的是,它会问询用户是否需求履行该指令。
-ls 具体列出所找到的一切文件。
-fprintf 文件名 将找到的文件名写入指定文件。
-print 在规范输出设备上显现查找出的文件名。
-printf 格局 格局的写法请参阅有关C言语的书。
find指令指令实例:
find . - name ‘main*’ - exec more {} \;
% 查找当时目录中一切以main最初的文件,并显现这些文件的内容。
find . \(- name a.out - o - name ‘*.o’\)> - atime +7 - exec rm {} \;
% 删去当时目录下一切一周之内没有被拜访过的a .out或*.o文件。
% 指令中的“.”表明当时目录,此刻 find 将从当时目录开端,逐一在其子目录中查找满意后边指定条件的文件。
% “\(” 和 “\)” 表明括号(),其间的 “\” 称为转义符。之所以这样写是因为对 Shell 而言,(和)还有不同的意义,而不是这儿的用于组合条件的用处。
% “-name a.out” 是指要查找名为a.out的文件;
% “-name ‘*.o’” 是指要查找一切姓名以 .o 结束的文件。
这两个 -name 之间的 -o 表明逻辑或(or),即查找姓名为a.out或姓名以 .o结束的文件。
% find指令在当时目录及其子目录下找到这佯的文件之后,再进行判别,看其***拜访时刻 是否在7天曾经(条件 -atime +7),若是,则对该文件履行指令 rm(-exec rm {} \;)。
其间 {} 代表当时查到的契合条件的文件名,\;则是语法所要求的。
% 上述指令中***行的***一个 \ 是续行符。当指令太长而在一行写不下时,可输入一个 \,之后体系将显现一个 >,指示用户持续输入指令。
上是目录结构中查找文件 find指令的详解,期望对您有所协助。
【修改引荐】
- linux vi指令详解:屏幕文本修改器Vi
- linux vi指令详解及运用技巧集锦
- 在linux vi指令行中增加行号的小技巧
知优网 » 目录结构中查找文件 find指令详解(find 当前目录查找文件)