linux find命令大全
介绍
find命令功能是根据给定的路径和条件查找相关文件或目录,参数灵活方便,支持正则表达式,结合管道符能够实现复杂的功能;但对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源;
不同版本find会有差异,以文档为准,查看文档命令在最后详细文档栏
find (GNU findutils) 4.5.11
Copyright © 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[root]# find -help
用法: find [-H] [-L] [-P] [-Olevel]
[-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
默认路径为当前目录;默认表达式为 -print
表达式可能由下列成份组成:操作符、选项、测试表达式以及动作:
操作符 (优先级递减;未做任何指定时默认使用 -and):
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2
选项 -daystart -follow -regextype
(在其他表达式之前指定):
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
--version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race
测试 (N 可以是 +N 或 -N 或 N): -amin N -anewer FILE -atime N -cmin N
-cnewer 文件 -ctime N -empty -false -fstype 类型 -gid N -group 名称
-ilname 匹配模式 -iname 匹配模式 -inum N -ipath 匹配模式 -iregex 匹配模式
-links N -lname 匹配模式 -mmin N -mtime N -name 匹配模式 -newer 文件
-nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
-readable -writable -executable
-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
-used N -user NAME -xtype [bcdpfls]
-context 文本
动作 -delete -print0 -printf 格式 -fprintf 文件 格式 -print
-fprint0 文件 -fprint 文件 -ls -fls 文件 -prune -quit
-exec 命令 ; -exec 命令 {} + -ok 命令 ;
-execdir 命令 ; -execdir 命令 {} + -okdir 命令 ;
操作符
以优先级排序,Expr 为命令表达式
( Expr )
提升优先级,需要转义
\( Expr \)
或者'(' Expr ')'
! Expr
-not Expr
非操作
Expr1 Expr2
Expr 1 -a Expr 2
Expr 1 -and Expr 2
短路与操作,前者为flase,后者不会执行,没有操作符连接默认and
Expr 1 -o Expr 2
Expr 1 -or Expr 2
短路或操作,前者为true,后者不会执行
Expr 1 , Expr 2
表达式都会执行,返回值由后者决定
选项
-daystart
设置开始时间以午夜凌晨为基准计算时间; 默认情况下,
find
命令使用的是从当前时间起的过去24小时内的时间范围,与-atime
、-mtime
、-ctime
一起使用
-follow
用于在遍历文件系统时跟踪符号链接所指向的文件或目录,并在搜索过程中进入链接所指向的目标文件或目录;注意:请确保目标文件系统没有循环链接,以免陷入无限循环
-regextype
用于指定正则表达式引擎的类型
posix-egrep
:使用 POSIX 扩展正则表达式引擎posix-extended
:使用 POSIX 扩展正则表达式引擎,与posix-egrep
相同posix-basic
:使用 POSIX 基本正则表达式引擎emacs
:使用 Emacs 正则表达式引擎gnu-awk
:使用 GNU Awk 正则表达式引擎
-depth
指示
find
命令在搜索文件时以深度优先的方式进行。深度优先搜索意味着find
命令首先进入子目录并搜索其中的文件,然后再返回到父目录继续搜索默认情况下,
find
命令使用广度优先搜索,即先搜索当前目录下的所有文件,然后再进入子目录进行搜索深度优先搜索的一个常见用途是在删除文件时,可以先删除子目录中的文件,然后再删除父目录。这样可以确保在删除目录时不会遗漏任何文件
-help
--help
命令的文档,列出 find 的命令行用法的概要,然后退出
-maxdepth levels
用于限制
find
命令的递归深度,即指定搜索的最大层级深度
-mindepth levels
指定搜索的最小深度
-mount
-xdev
mount一些版本没有,代替使用xdev
用于在指定的目录中查找文件,但不跨越不同的文件系统边界; 只搜索起始目录所在的文件系统,而不会跨越挂载点进入其他文件系统;这在需要限制搜索范围时非常有用,尤其是在搜索大型文件系统时,可以节省时间和资源
-noleaf
用于在搜索文件时不假设文件系统的目录结构是完整的;通常情况下,
find
命令会假设文件系统的目录结构是完整的,这样可以优化搜索过程;但在某些情况下,文件系统的目录结构可能不完整,这时可以使用-noleaf
选项来强制find
命令搜索整个文件系统;使用find -noleaf
命令可能会导致搜索速度变慢,因为它需要遍历整个文件系统来搜索文件;例如当文件系统出现损坏或目录结构不完整时可以使用请注意,
-noleaf
选项在不同的find
版本中可能具有不同的行为
-version
--version
打印find的版本号然后退出
-xautofs
自动挂载(autofs)是一种特定的文件系统挂载方法,它在需要访问时才会自动挂载,而在不使用时则会自动卸载;使用 -xautofs 选项可以告诉 find 命令在搜索文件时跳过自动挂载的文件系统,仅搜索已经挂载的文件系统
-ignore_readdir_race
现在好多版本没有一下两个命令了,已经不需要处理多进程访问问题了
用于在搜索文件时忽略
readdir race
错误;当多个进程同时访问同一个目录时,可能会发生readdir race
错误
-noignore_readdir_race
搜索文件时不忽略
readdir race
错误
测试
数字参数(n) | 含义 |
---|---|
+n | 比 n 大 |
-n | 比 n 小 |
n | 正好是 n |
歧义 | 说明 |
---|---|
更改过 | 指文件状态的更改(如权限,所有权等) |
修改过 | 指文件内容的修改 |
-amin [+-]n
查找在n分钟被访问过的文件
-cmin [+-]n
查找在n分钟被更改过的文件
-mmin [+-]n
查找在n分钟被修改过的文件
-atime [+-]n
查找在n天被访问过的文件
-ctime [+-]n
查找在n天被更改过的文件
-mtime [+-]n
查找在n天被修改过的文件
-used [+-]n
查找在n天被访问过的文件
-size [+-]n[cwbkMG]
查找文件大小为n单位的文件
选项 说明 c 1字节 w 2字节 b 512 字节 k 1KB M 1MB G 1GB
-anewer file
查找比文件file更近被访问过的文件
-cnewer file
查找比文件file更近被更改过的文件
-newer file
查找比文件file更近被修改过的文件
-fstype type
查找指定类型的文件系统类型
类型 说明 local 本地文件系统 nfs NFS 文件系统 smbfs SMB/CIFS 文件系统 afs AFS 文件系统 proc proc 文件系统 dev dev 文件系统 devpts devpts 文件系统 sysfs sysfs 文件系统 tmpfs tmpfs 文件系统 usbfs usbfs 文件系统 udf UDF 文件系统 iso9660 ISO 9660 CD-ROM 文件系统 hfs HFS 文件系统 hpfs HPFS 文件系统 qnx4 QNX4 文件系统 ufs UFS 文件系统 reiserfs ReiserFS 文件系统 minix Minix 文件系统 vxfs VxFS 文件系统 ext2 Ext2 文件系统 ext3 Ext3 文件系统 ext4 Ext4 文件系统
-gid n
查找属于指定组ID的文件
-group gname
查找属于指定组名的文件
-name pattern
查找文件名匹配模式pattern的文件,区分大小写
-iname pattern
类似于-name,但是不区分大小写
-lname pattern
查找符号链接名匹配模式pattern的文件
-ilname pattern
类似于-lname,但是不区分大小写
-inum n
查找inode号为n的文件;inode 号是文件系统中文件的唯一标识符,可以用来查找特定的文件
ls -i
查看inode
-path pattern
查找路径名匹配模式pattern的文件
-ipath pattern
类似于-path,但是不区分大小写
-iregex pattern
类似于-regex,但是不区分大小写
-links [+-]n
查找硬链接数为n的文件;硬链接是指多个文件名指向同一个文件的情况,每个文件名都是该文件的硬链接;硬链接数表示有多少个文件名指向同一个文件
-nouser
查找属主不存在的文件;可能是由于用户被删除而导致的;使用该选项可以帮助你找到这些文件并进行进一步处理
-nogroup
查找属组不存在的文件
-perm mode
查找文件权限精确匹配mode的文件;查找所有权限设置为
mode
的文件或目录;mode
是一个三位数的八进制数,每一位表示一种权限其中,第一位表示所有者的权限,第二位表示所属组的权限,第三位表示其他用户的权限;每一位的数值可以是 0(无权限)、1(执行权限)、2(写权限)或 4(读权限);
如查找所有所有者和所属组都有读写权限、其他用户没有任何权限的文件,可以使用
find -perm 660
命令
-perm -mode
查找文件权限包含mode的文件
-perm +mode
查找文件权限包含任意mode中的一个或多个的文件
-regex pattern
查找文件名匹配正则表达式pattern的文件
-readable
查找当前用户有读权限的所有文件或目录
-writable
查找当前用户有写权限的所有文件或目录
-executable
查找当前用户有执行权限的所有文件或目录
-type c
查找指定类型的文件
选项 说明 f 普通文件 d 目录 l 符号链接 s 套接字文件 p 命名管道 b 块设备文件 c 字符设备文件
-uid n
查找属主ID为n的文件
id -g
查看属主ID
-user uname
查找属主为指定用户名的文件
whoami
id -u -n
查看用户名
-xtype c
类似于-type,但是也包括符号链接指向的文件类型
-empty
查找空文件或空目录
-true
始终返回true,匹配所有文件
-false
始终返回false,不匹配任何文件
动作
-delete
删除匹配到的文件或目录;注意,该选项会直接删除文件,不会将其放入垃圾桶中,使用时请谨慎
-exec command ;
选项会在每个搜索到的文件上单独执行一次命令,注意命令必须以
;
结尾例如,以下命令会将搜索到的每个文件复制到
/path/to/dest/
目录下:find /path/to/search -type f -exec cp {} /path/to/dest/ \;
-exec command {} +
将多个搜索到的文件作为参数传递给一次命令执行,注意命令必须以
+
结尾例如,以下命令会将搜索到的所有文件打包成一个压缩文件:
find /path/to/search -type f -exec tar -czvf archive.tar.gz {} +
注意,
-exec command {} +
选项要求命令能够接受多个文件作为参数,因此不能使用一些只能接受一个文件名作为参数的命令,例如cp
命令
-execdir command ;
与
-exec
选项类似,但命令会在匹配到的每个目录中执行
-execdir command {} +
与
-exec
选项类似,但命令会在匹配到的每个目录中执行,并将多个搜索到的文件作为参数传递给一次命令执行,注意命令必须以+
结尾
-fls file
将匹配到的文件或目录的详细信息输出到指定的文件中
-fprint file
将匹配到的文件或目录名输出到指定的文件中
-fprint0 file
将匹配到的文件或目录名以null字符分隔,并输出到指定的文件中
-fprintf file format
将匹配到的文件或目录信息按照指定的格式输出到指定的文件中
-ok command ;
与
-exec
选项类似,但在执行命令前会询问用户是否执行该命令
-okdir command ;
与
-ok
选项类似,但命令会在匹配到的每个目录中执行
-print
将匹配到的文件或目录名输出到标准输出中
-print0
将匹配到的文件或目录名以null字符分隔,合并匹配项不换行
-printf format
按照指定的格式输出匹配到的文件或目录信息,格式可以包含各种占位符,例如
%p
表示文件或目录的完整路径,%s
表示文件大小等等
-prune
不对匹配到的目录进行进一步搜索,即不会进入该目录进行搜索
列如,在
/home
目录下搜索所有扩展名为.txt
的文件,但不想搜索/home/user1
目录find /home -path /home/user1 -prune -o -name "*.txt" -print
-path /home/user1 -prune
选项用于排除/home/user1
目录,-o
选项用于指定或的关系,-name "*.txt" -print
选项用于搜索扩展名为.txt
的文件并输出它们的路径。请注意,在使用
-prune
选项时,必须使用-o
选项来指定或的关系,以便find
命令能够搜索其他目录或文件
-quit
在第一次匹配到文件或目录后,停止搜索
-ls
类似于
ls -l
命令的输出格式,输出匹配到的文件或目录的详细信息
详细文档
man find
查看详细文档
NAME
find - 递归地在层次目录中处理文件
总览 SYNOPSIS
find [path...] [expression]
描述 DESCRIPTION
这个文档是GNU版本find命令的使用手册。find搜索目录树上的每一个文件名,它从左至右运算给定
的表达式,按照优先规则(见运算符OPERATORS一节)进行匹配,直到得出结果(左边运算在 '与'
操作中得出假, 在'或'操作中得出真),然后 find 移向下一个文件名。
第一个以 '-' , '(' , ')' , ',' 或 '!' 这些字符起始的参数是表达式的开始;
在它之前的任何参数是要搜索的路径,在它之后的任何参数都是表达式的余下部分。
如果没有路径参数,缺省用当前目录。如果没有表达式,缺省表达式 用 '-print'.
当所有文件都成功处理时 find 退出并返回状态值0。如果发生错误则返回一个大于0的值。
表达式 EXPRESSIONS
表达式是由选项(选项总是影响所有的操作,而不仅仅是一个指定的文件的处理,
而且总是返回真值),测试(测试返回一个真值或一个假值),还有动 作(动作有side effects,
返回一个真值或假值) 组成。它们都以运算符分开.忽 略运算符的时候,默认使用 -and
连接. 如果表达式没有包含 -prune 以外的动 作,当表达式为真时会执行 -print 动作。
选项 OPTIONS
所有的选项都总是返回真值,它们总会被执行,除非放在表达式中执行不到的地方。
因此,清楚起见,最好把它们放在表达式的开头部分。
-daystart
从当日起始时开始而不是从24小时之前,计算时间(for -amin, -atime, -cmin,
-ctime, -mmin, and -mtime)。
-depth 先处理目录的内容再处理目录本身。
-follow
不检索符号链接。隐含了 -noleaf。
-help, --help
列出 find 的命令行用法的概要,然后退出。
-maxdepth levels
进入命令行参数指定的目录下层目录时,最深不超过levels(一个非负整数)
层。'-maxdepth 0' 意味着只在命令行参数指定的目录中执行测试和动作。
-mindepth levels
不在levels(一个非负整数)层之内执行任何测试和动作。'-mindepth 1'意
味着处理所有的文件,除了命令行参数指定的目录中的文件。
-mount 不进入处于其它文件系统之上的目录。可以用-xdev代替,从而和一些其他版本的find兼容
-noleaf
不为“目录中子目录数量比硬连接数少2”这种假设做优化。这个选项在搜索那些不遵
循UNIX文件系统链接约定的文件系统时用,比如CD-ROM,MS-DOS文件系统或AFS卷的
加载点。在普通的UNIX文件系统中,每个目录至少有两个硬连接,它的名字和它的 '.'
条目。另外,它的子目录(假如有)还会各有一个'..'链接到它。在 find
检索一个目录时,发现子目录数比它的连接数少二时,它就知道目录中的其他条目
并非目录(而是目录树中的叶('leaf')节点)。除非需要检索的是这个叶节点,否则
没必要去处理它。这样可以带来很大的搜索速度提升。
-version, --version
打印find的版本号然后退出。
-xdev 不进入处于其他文件系统之上的目录。
测试 TESTS
数字参数可以这样给出:
+n 是比 n 大,
-n 是比 n 小,
n 正好是 n 。
-amin n
对文件的最近一次访问是在 n 分钟之前。
-anewer file
对文件的最近一次访问比 file 修改时间要晚。如果命令行中 -follow在-anewer
之前,(也只有在这种情况下) -anewer 会受 -follow 的影响。
-atime n
对文件的最近一次访问是在 n*24 小时之前。
-cmin n
对文件状态的最近一次修改是在 n 分钟之前。
-cnewer file
对文件状态的最近一次修改比 file 修改时间要晚。如果命令行中-follow在
-cnewer 之前,(也只有在这种情况下) -cnewer 会受 -follow 的影响。
-ctime n
对文件状态的最近一次修改是在 n*24 小时之前。
-empty 文件是空的普通文件或者空目录。
-false 总是false。
-fstype type
文件处于type类型的文件系统之上。有效的文件系统类型在不同版本的Unix中是不同的;
一些Unix中的不完全的文件系统类型列表是这样:ufs,4.2, 4.3, nfs, tmp, mfs,
S51K, S52K.你可以用 -printf 加上 %F指令来查看你的文件系统的类型。
-gid n 文件的数字形式的组ID是 n。
-group gname
文件属于 gname (也允许使用数字形式的组ID).
-ilname pattern
和 -lname 类似,但是匹配时是不区分大小写的。
-iname pattern
和 -name 类似,但是匹配时是不区分大小写的。例如,'fo*' and 'F??'
模式与文件名 'Foo', 'FOO', 'foo', 'fOo' 等等相匹配。
-inum n
文件的 i 结点数是 n。
-ipath pattern
和 -path 类似,但是匹配时是不区分大小写的。
-iregex pattern
和 -regex 类似, 但是匹配时是不区分大小写的。
-links n
文件有 n 个链接。
-lname pattern
文件是一个与pattern 匹配的符号链接。元字符不会对'/' 或 '.' 做特殊处理。
-mmin n
对文件数据的最近一次修改是在 n 分钟之前。
-mtime n
对文件数据的最近一次修改是在 n*24 小时之前。
-name pattern
基本的文件名(将路径去掉了前面的目录)与shell模式pattern相匹配。元字符('*',
'?',还有'[]')不会匹配文件名开头的'.'。使用-prune
来略过一个目录及其中的文件。查看 -path 的描述中的范例。
-newer file
对文件的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -newer
之前,(也只有在这种情况下) -newer 会受 -follow 的影响。
-nouser
没有符合文件的数字形式的用户ID的用户。
-nogroup
没有符合文件的数字形式的组ID的组。
-path pattern
文件名与shell模式pattern相匹配。元字符不会对/ 或 . 做特殊处理。 因此,
例如: find . -path './sr*sc' 如果存在 './src/misc'的话,会将它打印出来。
想要忽略一个完整的目录树,应当使用-prune 而不是检查目录树中所有的文件。
例如:要跳过 'src/emacs'目录和其中所有的文件和子目录,把其他找到的文件打印出来,
应当这样:find . -path './src/emacs' -prune -o -print
-perm mode
文件的权限位恰好是 mode (八进制或符号)。
-perm -mode
所有的权限位 mode 都被设置了的文件。
-perm +mode
任何权限位 mode 被设置了的文件。
-regex pattern
文件名与正则表达式 pattern
匹配。这是对整个路径的匹配,不是搜索文件。例如,要匹配名为'./fubar3'
的文件,可以使用正则表达式 '.*bar.' 或者 '.*b.*3',但是不能用'b.*r3'。
-size n[bckw]
文件使用了 n 单位个存储单元。默认的单位是512字节的块,也可以用n后面加上 'b'
来指定这个值。其他的单位是字节,如果在 n 后面加上 'c' ;千字节(kB),如果在
n 后面加上'k' ;两字节的字,如果在 n 后面加上 'w' 。大小不会计入 indirect
blocks,但是会计入没有真正分配空间的疏松文件中的块。
-true 总是true。
-type c
文件是 c 类型的。类型可取值如下:
b 特殊块文件(缓冲的)
c 特殊字符文件(不缓冲)
d 目录
p 命名管道 (FIFO)
f 普通文件
l 符号链接
s 套接字
D 门 (Solaris 特有)
-uid n 文件的数字形式的用户ID是 n 。
-used n
文件最后一次存取是在最后一次修改它的状态的 n 天之后。
-user uname
文件的所有者是 uname (也可以使用数字形式的用户ID).
-xtype c
和 -type 相同,除非文件是一个符号链接。对于符号链接:如果没有给出 -follow
,如果文件是一个指向 c 类型文件的链接,那么返回true;如果给出了 -follow
,如果 c 是 'l' 那么返回true。换句话说,对于符号链接,-xtype 检查那些 -type
不检查的文件。
动作 ACTIONS
-exec command ;
执行 command;如果命令返回状态值0,那么 exec 返回true。所有 find
其余的命令行参数将作为提供给命令的参数,直到遇到一个由';'
组成的参数为止。命令的参数中,字符串 '{}' 将以正在处理的文件名替换。所有的
'{}' 都会被替换,不仅是在单独的一个参数中。有些版本的 find 不是这样做的。
这些参数可能需要用'\' 来escape
或者用括号括住,防止它们被shell展开。命令是从起始目录执行的。
-fls file
返回true;类似 -ls 但是像 -fprint 那样写入 file。
-fprint file
返回true;将文件全名打印到文件 file 中。如果运行 find 时 file
不存在,那么它将被创建。如果它存在,它将被覆盖。文件名'/dev/stdout'
和'/dev/stderr' 会作特殊处理;它们分别指的是标准输出和标准错误输出。
-fprint0 file
返回true;类似 -print0 但是像 -fprint 那样写入 file。
-fprintf file format
返回true;类似 -printf 但是像 -fprint 那样写入 file。
-ok command ;
类似 -exec 但是会先向用户询问 (在标准输入); 如果回应不是以 'y' 或 'Y'
起始则不会运行 command 而是返回false。
-print 返回true;在标准输出打印文件全名,然后是一个换行符。
-print0
返回true;在标准输出打印文件全名,然后是一个null字符。这样可以使得处理 find
的输出的程序可以正确地理解带有换行符的文件名。
-printf format
返回true;在标准输出打印 format ,解释 '\' escape 还有'%'
指令。字段宽度和精度可以像C函数 'printf' 那样来指定。与 -print 不同的是,
-printf 在字符串末端不会添加一个新行。可用的escape 和指令如下:
\a 警告铃声
\b 回退
\c 立即停止以当前格式输出,刷新输出设备。
\f 表格结束
\n 新行
\r 回车
\t 水平tab
\v 竖直tab
\\ 输出自身'\'
\NNN ASCII编码是NNN(八进制)的字符
在一个字符后面使用任何其他字符会被作为普通的字符,因此它们都会被打印出来。
%% 输出自身'%'
%a 文件最后一次存取的时间。格式是C函数 'ctime' 返回值的格式。
%Ak 文件最后一次存取的时间。格式以 k 指定,可以是'@'或者是C函数 'strf‐time'
的指令格式。下面列出了k
可用的值;有一些并不是在所有系统上都可用,因为不同系统中'strftime'也不同
@ 从 Jan. 1, 1970, 00:00 GMT 起的秒数
时间字段:
H 小时 (00..23)
I 小时 (01..12)
k 小时 ( 0..23)
l 小时 ( 1..12)
M 分钟 (00..59)
p 本地的 AM 或者 PM
r 12小时格式的时间 (hh:mm:ss [AP]M)
S 秒 (00..61)
T 24小时格式的时间 (hh:mm:ss)
X 本地的时间表示方法 (H:M:S)
Z 时区(例如,EDT),如果不能决定时区就是空
日期字段:
a 本地一星期中每天的名称的缩写(Sun..Sat)
A 本地一星期中每天的全名,可变长度 (Sunday..Saturday)
b 本地每月的名称的缩写 (Jan..Dec)
B 本地每月的全名,可变长度 (January..December)
c 本地的日期和时间表示 (Sat Nov 04 12:02:33 EST 1989)
d 一个月当中的日子 (01..31)
D 日期 (mm/dd/yy)
h 与 b 相同
j 一年当中的日子 (001..366)
m 月份 (01..12)
U 以星期日作为每周起始,一年当中的星期 (00..53)
w 一星期当中的日子 (0..6)
W 以星期一当作每周起始,一年当中的星期 (00..53)
x 本地的日期表示 (mm/dd/yy)
y 年份的最后两位 (00..99)
Y 年份 (1970...)
%b 文件大小,以512字节的块为单位 (四舍五入)。
%c 文件状态最后一次修改的时间。格式是C函数 'ctime' 返回值的格式。
%Ck 文件状态最后一次修改的时间。格式以 k 指定,类似于%A。
%d 文件在目录树中的深度;0 意味着文件是一个命令行参数。
%f 去掉了前面的目录的文件名 (只剩下最后的成分)。
%F 文件所在文件系统的类型;这个值可以为 -fstype 所用。
%g 文件的组名,如果组没有名称就是数字形式的组ID。
%G 文件的数字形式的组ID。
%h 文件名的前面的目录部分 (仅除去最后的成分)。
%H 据以找到了文件的命令行参数。
%i 文件的 i 结点号(16进制)。
%k 文件大小,以1kB 的块为单位 (四舍五入)。
%l 符号链接的目标 (如果文件不是一个符号链接,那么结果是空字符串)。
%m 文件的权限位 (8进制)。
%n 文件的硬连接数。
%p 文件名。
%P 文件名,去掉了据以找到了文件的命令行参数的名称部分。
%s 文件大小,以字节为单位。
%t 文件最后一次修改的时间。格式是C函数 'ctime' 返回值的格式。
%Tk 文件最后一次修改的时间。格式以 k 指定,类似于%A。
%u 文件的用户名,如果用户没有名称就是数字形式的用户ID。
%U 文件的数字形式的用户ID。
在一个'%'字符后面使用任何其他字符,'%'将被忽略(但是其他字符会被打印出来)。
-prune 如果没有给出 -depth 则返回 true; 不进入当前目录。
如果给出了 -depth 则返回false; 没有效果。
-ls 返回true;以'ls -dils' 格式在标准输出列出文件。块以1kB字节为单位计数,
除非设置了环境变量POSIXLY_CORRECT,那样的话会使用512字节的块。
运算符 OPERATORS
以优先级高低顺序排列:
( expr )
强制为优先
! expr
如果 expr 是false则返回true
-not expr
与 ! expr 相同
expr1 expr2
与 (隐含的默认运算符);如果 expr1 为false则不会执行 expr2
expr1 -a expr2
与 expr1 expr2 相同
expr1 -and expr2
与 expr1 expr2 相同
expr1 -o expr2
或;如果 expr1 为true 则不会执行 expr2
expr1 -or expr2
与 expr1 -o expr2 相同
expr1 , expr2
列表;expr1 和 expr2 都会被执行。expr1 的值被忽略,列表的值是 expr2的值