1、find命令
find命令是一个无处不在命令,是linux中最有用的命令之一。find命令用于:在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。下面就通过实例来体验下find命令的强大。
1.1、find命令的一般形式
man文档中给出的find命令的一般形式为:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
其实[-H] [-L] [-P] [-D debugopts] [-Olevel]这几个选项并不常用(至少在我的日常工作中,没有用到过),上面的find命令的常用形式可以简化为:
find [path...] [expression]
path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
expression:expression可以分为——“-options [-print -exec -ok ...]”
-options,指定find命令的常用选项,下节详细介绍
-print,find命令将匹配的文件输出到标准输出
-exec,find命令对匹配的文件执行该参数所给出的shell命令。
相应命令的形式为'command' { } \;,注意{ }和\;之间的空格
find ./ -size 0 -exec rm {} \;
删除文件大小为零的文件 (还可以以这样做:rm -i `find ./ -size 0` 或 find ./ -size 0 | xargs rm -f &)
为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中:find . -type f -exec ls -l { } \;
在/logs目录中查找更改时间在5日以前的文件并删除它们:find /logs -type f -mtime +5 -exec rm { } \;
-ok,和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
find . -name "*.conf" -mtime +5 -ok rm { } \;
在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示
也有人这样总结find命令的结构:
find start_directory test
options
criteria_to_match
action_to_perform_on_results
1.2、find命令的常用选项及实例
-name
按照文件名查找文件。
在/dir目录及其子目录下面查找名字为filename的文件
find . -name "*.c" 在当前目录及其子目录(用“.”表示)中查找任何扩展名为“c”的文件
find /dir -name filename
-perm
按照文件权限来查找文件。
在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件
find . -perm 755 –print
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
在/apps目录下查找文件,但不希望在/apps/bin目录下查找
在/usr/sam目录下查找不在dir1子目录之内的所有文件
find /usr/sam -path "/usr/sam/dir1" -prune -o –print
find /apps -path "/apps/bin" -prune -o –print
-user
按照文件属主来查找文件。
在$HOME目录中查找文件属主为sam的文件
find ~ -user sam –print
-group
按照文件所属的组来查找文件。
在/apps目录下查找属于gem用户组的文件
find /apps -group gem –print
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
在系统根目录下查找更改时间在5日以内的文件
在/var/adm目录下查找更改时间在3日以前的文件
find /var/adm -mtime +3 –print
find / -mtime -5 –print
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
find / –nogroup -print
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
find /home -nouser –print
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
查找某一类型的文件,诸如:
在当前目录下查找除目录以外的所有类型的文件
find /etc -type l –print
在/etc目录下查找所有的符号链接文件
b - 块设备文件。
d - 目录。
find /etc -type d –print
在/etc目录下查找所有的目录
find . ! -type d –print
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
find . -size +1000000c –print
在当前目录下查找文件长度大于1 M字节的文件
find /home/apache -size 100c –print
在/home/apache目录下查找文件长度恰好为100字节的文件
find . -size +10 –print
在当前目录下查找长度超过10块的文件(一块等于512字节)
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
find / -name "CON.FILE" -depth –print
它将首先匹配所有的文件然后再进入子目录中查找
-mount:在查找文件时不跨越文件系统mount点。
find . -name "*.XC" -mount –print
从当前目录开始查找位于本文件系统中文件名以XC结尾的文件(不进入其他文件系统)
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
相关推荐
详细介绍了linux下的find命令经常使用的选项的意义和方法
Once you overcome your initial "shell shock," you'll find that the command line is a natural and expressive way to communicate with your computer. Just don't be surprised if your mouse starts to ...
Linux运维实用命令之find详解,find命令用于Linux查询最实用命令之一,请大家参考。
超级详细的Linux,find命令详解,很实用适合Linux学习爱好者!
Linux Find 命令详解 非常详尽
简易Linux命令行模拟器,集成了常用文件和目录操作功能: 1. mypwd:pwd,获取并显示当前工作目录的路径。 2. mylist:ls,接收一个目录参数,列出其中的所有非隐藏(即名称不以.开头)文件和目录。 3. mycd:cd, ...
find是在磁盘中查找满足给定标准的文件和目录的应用程序。默认情况下,它从当前目录开始,向下扫描所有子目录。Find基于各种不同的文件属性来进行查询,而且可以对查询结果执行某种操作,通常是对每个查询结果运行...
如果你想在linux系统的命令行中变得特别高效,那么 find 是你必须掌握的命令之一。 find 命令的基本语法如下: $ find [path] [option] [expression] 一、基本用法 1. 列出当前目录和子目录下的所有文件 这个命令...
Linux Find_命令使用详解
帮助您轻松工作及管理你的Linux系统 没什么好说的,想学就下。
Linux 命令行专门设计了很多非常有用的命令行工具在你的电脑上查找文件。下面我们看一下它们其中三个:ls、tree 和 find。感兴趣的朋友跟随小编一起看看吧
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统...
1,apropos whatis 2find -name '*.[ch]' | xargs grep -E 'expr'
1.su root/exit/(shutdown -r重启/h关机 now...2.find . -name 'My*' -o /或的意思 -and /并的意思 3.cp -i exam1.c /usr/wang/aifeng.c cp exam1.c /usr/wang/ cp -r /usr/xu/ /usr/liu/ 整个目录的复制
linux linux linux linux linux linux linux linux linux linux find
今天小编就为大家分享一篇关于Linux文本查找命令find的用法详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
今天的目标是熟悉一下Linux里的一些命令行: 1. Find the command line: Path: Applications->System Tools->Terminal 2. Some Linux Command $ users used to display the curren t user $ cal used to ...
linux下的find命令格式及参数。
linux常用的find命令整理,希望对初学者有帮助!