(linux) find command
find命令的主要功能是在系统中查找文件或目录:
find命令的一般形式为:findpathname-options[-print-exec-ok]
print为对匹配文件输出到标准输出,默认为标准输出,故可不写
exec为对匹配文件执行该参数给出的shell命令,形式为'command'{}\;
ok与exec类似,更安全,每步需要用户确认。
1.-name根据文件名匹配。例如:
find~-name"test.txt"在home路径及子目录下查找test.txt文件。
find.-name"[a-z][A-Z][0-9][0-9]*"在当前路径及子目录下查找,一个小写字母加一个大写字母加两个数字开头的文件。
find/-name"*.txt"查找所有txt文件。
2.-perm(permission)根据权限匹配。例如:
find.-perm777查找当前及子目录下所有权限为777的文件。(777意义详见chmod)
find.-perm-777查找权限大于等于777的文件。+为小于等于。
3.-user根据用户匹配。例如:
find.-userabc查找abc属主的文件。
4.-nouser查找属主账户已经被删除的文件。例如:
find.-nouser
5.-group,-nogroup与user,nouser类似。
6.-mtime根据更改时间匹配。例如:
find.-mtime-33天以内的
find.-mtime+44天以前的
7.-newer根据更改时间匹配。例如:
find.-newerabc更改时间比abc文件新的文件。
find.-newerabc!-newer123-execls-l{}\;更改时间比abc新但比123旧的文件,列出其详细信息。!为逻辑非。
8.-type根据文件类型匹配。
文件类型:
b:块设备文件
d:目录
c:字符设备文件
p:管道文件
l:符号链接文件
f:普通文件例如:
find.-typef#查找普通文件
$find.-typed-name16M_Image#查找特定目录
9.-size根据文件长度匹配。例如:
find.-size+1000000c文件大于1M字节的文件。注意数字后面的c,c代表用字节计量。
find.-size10文件等于512块的文件。数字后没有c时,表示用块(1块=512字节)计量。
10.还可与xargs命令一同使用(后续介绍)。======================================================================================
======================================================================================
linux find command==========================================
格式: find [path...] [expression]
find/-nameaccess_log2>/dev/null不显示错误信息
find/-aminn##查找系统中最后N分钟访问的文件
find/-atimen##查找系统中最后n*24小时访问的文件
find/-cminn##查找系统中最后N分钟被改变状态的文件
find/-ctimen##查找系统中最后n*24小时被改变状态的文件
find/-empty##查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
find/-false##查找系统中总是错误的文件
find/-fstypetype##查找系统中存在于指定文件系统的文件,例如:ext2.
find/-gidn##查找系统中文件数字组ID为n的文件
find/-groupgname##查找系统中文件属于gnam文件组,并且指定组和ID的文件
find/-mminn#查找在系统中最后n分钟里修改过的文件
find/-mtimen#查找在系统中最后24*n小时里修改过的文件
find/-nouser#查找在系统中属于作废用户的文件
find/-sizenc#查找在系统中长度为n字节的文件
find/-size+nc#查找在系统中长度大于n字节的文件
find/-daystart##测试系统从今天开始24小时以内的文件,用法类似-amin
find/-depth##使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
find/-follow##遵循通配符链接方式查找;另外,也可忽略通配符链接方式查询
find/-help##显示命令摘要
find/-maxdepthlevels##在某个层次的目录中按照递减方法查找
find/-mount##不在文件系统目录中查找,用法类似-xdev.
find / -noleaf ##禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找find / -version ##打印版本数字
-execcommand;##查找并执行命令
-fprintfile##打印文件完整文件名
-fprint0file##打印文件完整文件名包括空的文件
-fprintffileformat##打印文件格式
-okcommand;##给用户命令执行操作,根据用户的Y确认输入执行
-printfformat##打印文件格式
-ls ##打印同种文件格式的文件.几个参数之间可以用-and,-or连接,某个参数取反可用!
======================
用manfind可以看到下面的说明:
-mtimen
Filesdatawaslastmodifiedn*24hoursago.===>manfind里面解释错误
find-mtime4是找到所有5天前4天后被更改的档案文件,
find-mtime-4是4天内被改的档案,
find-mtime+4是4天后被改的档案。
======================查看某目录下有多少个文件命令:
#findDirPath-typef|wc-l
比如: find /home/snail -type f | wc -l如果想查看 src 目录下有多少 C 文件,如下:# find ./src -type f -name "*.c" | wc -l
find 命令的 -type 后的参数有以下选择,每种都代表不一样的“类型(type)”
-type文件类型
b块文件(比如内存)
c字符文件(比如串口)
d目录文件(目录也是一种文件)
p有名管道(FIFO)
f普通文件
l符号链接(如果使用-L或-follow选项则不起作用,除非链接损坏)
ssocket文件(比如/tmp/mysql.sock)
D door (Solaris)======================
文件查找命令find
find用于查找文件系统中指定文件,其格式为:find要查找的路径表达式
例如:find.-name1.txt\\在当前目录及其子目录下查找文件1.txt
find /tmp -name 1.txt \\ 在/tmp 目录及其子目录下查找文件1.txt======================
查找Linux下的空目录技巧
if [ -z "$1" ]; then
echoUsage:$0\
exit1
fi
echo-eNulldirectorylist:
for i in $(find $1 -type d -print)do
TMP=$(ls$i)
if["$TMP"="\."];then
continue
elif[-z"$TMP"];then
echo$i
fi
done======================