15个极好的Linux find命令示例

合集下载

linux的find用法

linux的find用法

linux的find用法Linux中的find命令是一个非常强大的工具,用于在文件系统中文件和目录。

它可以根据不同的条件来查找文件,比如按名称、大小、权限等。

以下是find命令的用法及其参数解析。

基本用法:find 命令的基本语法是:find [path] [expression]path:指定要的路径。

expression:指定要应用的表达式。

例如,要在当前目录中查找所有的文件,可以使用以下命令:find . -type f这将递归地当前目录下的所有文件,并打印出它们的路径。

find 命令的参数:1. -name:按名称查找文件。

例如,要在当前目录中查找名为app.log的文件,可以使用以下命令:find . -name app.log2. -type:按类型查找文件。

-type f:查找普通文件。

-type d:查找目录。

-type l:查找符号链接。

-type b:查找块设备文件。

-type c:查找字符设备文件。

-type s:查找套接字文件。

-type p:查找FIFO文件。

3. -size:按大小查找文件。

-size [+,-]n:查找大于(+)或小于(-)n个512字节块的文件。

-size n[cwbkMGTP]:查找大于(+)或小于(-)n个单位(字节、块、KB、MB、GB、TB、PB)的文件。

5. -perm:按权限查找文件。

-perm mode:以mode权限查找文件。

6. -exec:对结果执行命令。

7. -user:按所有者查找文件。

-user username:查找属于username的文件。

8. -group:按组查找文件。

-group groupname:查找属于groupname的文件。

9. -maxdepth:指定递归的最大深度。

-maxdepth n:最多递归到n层目录。

10. -mindepth:指定递归的最小深度。

-mindepth n:从第n层目录开始递归。

linux下find命令整理

linux下find命令整理

Linux下find 命令整理在windows系统中,我们可以通过开始-搜索来查找想要的文件,这样既方便又快捷。

但是对于刚接触linux系统的人而言,在linux上查找文件确不是那么简单。

当然,如果习惯了linux下的find命令,则会比windows下查找更方便。

首先熟悉一下find命令的格式:用法: 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 EXPR2EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2位置选项(总是真): -daystart -follow -regextype普通选项(总是真,在其它表达式前指定):-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf--version -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 CONTEXTactions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print-fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit-exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;-execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;下面根据我们常用的查找文件的方式来介绍find命令的各个参数。

find用法 linux -回复

find用法 linux -回复

find用法linux -回复Find命令是Linux系统中一个非常强大且常用的命令,用于查找文件、目录以及符合某些条件的内容。

它提供了许多选项和参数,以便根据不同的需求来搜索文件。

本文将逐步解释find命令的使用方法,以及一些常见的应用场景。

一、查找文件和目录首先,我们来看一下最基本的用法。

要在Linux系统中查找文件或者目录,可以使用以下命令格式:find [路径] [选项] [表达式]其中,路径是需要查找的目录或者文件的路径;选项用于指定查找的属性和条件;表达式用于指定要查找的文件或目录的模式。

示例1:查找当前目录下所有的.txt文件。

find . -name "*.txt"- "."表示当前目录,也可以通过指定其他目录来搜索。

- "-name"选项用于指定文件名模式,这里我们使用通配符"*"来匹配所有文件,后缀为".txt"的文件。

示例2:查找当前目录下大小大于10MB的文件。

find . -size +10M- "-size"选项用于指定文件大小,"+10M"表示文件大小大于10MB。

示例3:查找当前目录下最近7天内修改过的文件。

find . -mtime -7- "-mtime"选项用于指定文件的修改时间,"-7"表示7天以内的文件。

二、查找并执行操作除了寻找文件和目录,find命令还可以与-exec参数结合使用,以便在找到文件后执行某些操作。

下面是一个例子:示例4:查找当前目录下以".txt"结尾的文件,并将它们复制到新的目录。

find . -name "*.txt" -exec cp {} /新目录\;- "{}"表示找到的文件。

这里我们将它们复制到了新目录,你可以根据需要修改目标目录的路径。

find指令用法

find指令用法

find指令用法find指令是Linux系统中常用的一种通用搜索工具,可以用于查找文件和目录。

使用方式:1. 基本语法:find [路径] [表达式]例如:find /home/user/ -name '*.txt' -print其中,“/home/user/”为要搜索的路径,“-name”是匹配的表达式,“*.txt”代表文件名以.txt结尾,“-print”表示将搜索结果输出到屏幕上。

2. 按文件类型搜索:(1)搜索所有文件:find /home/user/ -type f -print其中,“-type f”表示搜索文件类型为“普通文件”。

(2)搜索所有目录:find /home/user/ -type d -print其中,“-type d”表示搜索文件类型为“目录”。

(3)搜索所有链接文件:find /home/user/ -type l -print 其中,“-type l”表示搜索文件类型为“链接文件”。

3. 按文件大小搜索:(1)搜索大于指定大小的文件:find /home/user/ -size +10M -print其中,“+10M”表示搜索大小大于10MB的文件。

(2)搜索小于指定大小的文件:find /home/user/ -size -10M -print其中,“-10M”表示搜索大小小于10MB的文件。

4. 按修改时间搜索:(1)搜索最近N天内修改的文件:find /home/user/ -mtime -N -print其中,“-mtime -N”表示搜索最近N天内被修改过的文件。

(2)搜索最近N天外修改的文件:find /home/user/ -mtime +N -print其中,“-mtime +N”表示搜索最近N天外修改的文件。

5. 按用户和组搜索:(1)搜索属于某个用户的文件:find /home/user/ -user username -print其中,“-user username”表示搜索属于用户名为“username”的文件。

Linux中find常见用法

Linux中find常见用法

Linux中find常见用法·find path -option [ -print ] [ -exec -ok command ] {} \;#-print 将查找到的文件输出到标准输出#-exec command {} \; —–将查到的文件执行command操作,{} 和 \;之间有空格#-ok 和-exec相同,只不过在操作前要询用户====================================================-name filename #查找名为filename的文件-perm #按执行权限来查找-user username #按文件属主来查找-group groupname #按组来查找-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前-atime -n +n #按文件访问时间来查GIN: 0px">-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存-newer f1 !f2 找文件,-n指n天以内,+n指n天以前-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存-newer f1 !f2 #查更改时间比f1新但比f2旧的文件-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件-size n[c] #查长度为n块[或n字节]的文件-depth #使查找在进入子目录前先行查找完本目录-fstype #查更改时间比f1新但比f2旧的文件-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件-size n[c] #查长度为n块[或n字节]的文件-depth #使查找在进入子目录前先行查找完本目录-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到-mount #查文件时不跨越文件系统mount点-follow #如果遇到符号链接文件,就跟踪链接所指的文件-cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到-mount #查文件时不跨越文件系统mount点-follow #如果遇到符号链接文件,就跟踪链接所指的文件-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中-prune #忽略某个目录=====================================================$find ~ -name "*.txt" -print #在$HOME中查.txt 文件并显示$find . -name "*.txt" -print$find . -name "[A-Z]*" -print #查以大写字母开头的文件$find /etc -name "host*" -print #查以host开头的文件$find . -name "[a-z][a-z][0–9][0–9].txt" -print #查以两个小写字母和两个数字开头的txt文件$find . -perm 755 -print$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777$find . -type d -print$find . ! -type d -print$find . -type l -print$find . -size +1000000c -print #查长度大于1Mb的文件$find . -size 100c -print # 查长度为100c的文件$find . -size +10 -print #查长度超过期作废10块的文件(1块=512字节)$cd /$find etc home apps -depth -print |cpio -ivcdC65536 -o /dev/rmt0$find /etc -name "passwd*" -execgrep "cnscn" {} \; #看是否存在cnscn用户$find . -name "yao*" | xargs file$find . -name "yao*" | xargs echo "" >/tmp/core.log$find . -name "yao*" | xargs chmod o-w======================================================find -name april* 在当前目录下查找以april开始的文件find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中find -name ap* -o -name may* 查找以ap或may开头的文件find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件find /home -mtime -2 在/home下查最近两天内改动过的文件find /home -atime -1 查1天之内被存取过的文件find /home -mmin +60 在/home 下查60分钟前改动过的文件find /home -amin +30 查最近30分钟前被存取过的文件find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录find /home -uid +501列出/home目录内用户的识别码大于501的文件或目录find /home -group cnscn 列出/home内组为cnscn的文件或目录find /home -gid 501 列出/home内组id为501的文件或目录find /home -nouser 列出/home内不属于本地用户的文件或目录find /home -nogroup 列出/home内不属于本地组的文件或目录find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层find /home -name tmp.txt -mindepth 3 从第2层开始查find /home -empty 查找大小为0的文件或空目录find /home -size +512k 查大于512k的文件find /home -size -512k 查小于512k的文件find /home -links +2 查硬连接数大于2的文件或目录find /home -perm 0700 查权限为700的文件或目录find /tmp -name tmp.txt -exec cat {} \;find /tmp -name tmp.txt -ok rm {} \;find / -amin -10 # 查找在系统中最后10分钟访问的文件find / -atime -2 # 查找在系统中最后48小时访问的文件find / -empty # 查找在系统中为空的文件或者文件夹find / -group cat # 查找在系统中属于groupcat的文件find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件find / -mtime -1 #查找在系统中最后24小时里修改过的文件find / -nouser #查找在系统中属于作废用户的文件find / -user fred #查找在系统中属于FRED这个用户的文件查当前目录下的所有普通文件# find . -type f -exec ls -l {} \;-rw-r–r– 1 root root 349282003-02-25 ./conf/httpd.conf-rw-r–r– 1 root root 129592003-02-25 ./conf/magic-rw-r–r– 1 root root 1802003-02-25 ./conf.d/README查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出=================================================在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:$ find logs -type f -mtime +5 -exec -ok rm {} \;=================================================查询当天修改过的文件[root@book class]# find ./ -mtime -1 -typef -exec ls -l {} \;=================================================查询文件并询问是否要显示[root@book class]# find ./ -mtime -1 -typef -ok ls -l {} \;< ls … ./classDB.inc.php > ? y-rw-r–r– 1 cnscn cnscn 13709 1月 12 12:22 ./classDB.inc.php[root@book class]# find ./ -mtime -1 -typef -ok ls -l {} \;< ls … ./classDB.inc.php > ? n[root@book class]#=================================================查询并交给awk去处理[root@book class]# who | awk ’{print $1"\t"$2}’cnscn pts/0=================================================awk—grep—sed[root@book class]# df -k | awk ‘{print $1}’| grep -v ’none’ | sed s"/\/dev\///g"文件系统sda2sda1[root@book class]# df -k | awk ‘{print $1}’| grep -v ’none’文件系统/dev/sda2/dev/sda11)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTORB) grep SYSCALL_VECTOR /tmp/*.h | cut -d’:' -f1| uniq > filenameC) find /tmp -name "*.h" -exec grep"SYSCALL_VECTOR" {} \; -print2)find / -name filename -exec rm -rf {} \;find / -name filename -ok rm -rf {} \;3)比如要查找磁盘中大于3M的文件:find . -size +3000k -exec ls -ld {} ;4)将find出来的东西拷到另一个地方find *.c -exec cp ‘{}’ /tmp ‘;’如果有特殊文件,可以用cpio,也可以用这样的语法:find dir -name filename -print | cpio -pdv newdir6)查找2004-11-30 16:36:37时更改过的文件# A=`find ./ -name "*php"` | ls -l –full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"。

Linux命令高级技巧使用find命令查找特定类型的文件

Linux命令高级技巧使用find命令查找特定类型的文件

Linux命令高级技巧使用find命令查找特定类型的文件在Linux系统中,Find命令是一个非常强大且常用的命令工具,它可以帮助用户快速、精确地查找特定类型的文件。

本文将介绍Linux命令高级技巧,以及如何使用Find命令来查找特定类型的文件。

I. Find命令的基本用法Find命令是一种非常强大的文件搜索命令,其基本用法如下所示:1. find [path] [options] [expression]在上述命令中,[path]表示要搜索的目录路径,[options]表示命令选项,[expression]表示要查找的文件类型或其他条件表达式。

下面将详细介绍Find命令的高级技巧。

II. 根据文件类型查找文件Find命令可以根据文件类型进行文件搜索。

下面是一些常见的文件类型查找示例:1. 查找所有的文本文件:find /path/to/search -type f -name "*.txt"2. 查找所有的图片文件:find /path/to/search -type f -name "*.jpg" -o -name "*.png"3. 查找所有的压缩文件:find /path/to/search -type f -name "*.zip" -o -name "*.tar.gz"以上示例中,“/path/to/search”是要进行搜索的目录路径。

通过使用-type选项指定文件类型为“f”,-name选项指定文件名的匹配模式,可以准确地查找到所需的文件。

III. 根据文件大小查找文件Find命令还可以根据文件大小进行文件搜索。

下面是几个常见的文件大小查找示例:1. 查找大于1MB的文件:find /path/to/search -type f -size +1M2. 查找小于10KB的文件:find /path/to/search -type f -size -10k在上述示例中,-size选项用于指定文件的大小范围。

使用find命令定期清理过期文件和

使用find命令定期清理过期文件和

使用find命令定期清理过期文件和find命令是Linux系统中非常常用的命令之一,它可以帮助我们在文件系统中查找并定位指定条件的文件。

通过结合其他命令,我们还可以使用find命令来清理过期的文件和目录,以释放磁盘空间并保持系统的良好运行。

本文将介绍如何使用find命令定期清理过期文件和目录。

一、了解find命令的基本用法在开始使用find命令清理过期文件之前,首先需要了解find命令的基本用法。

find命令的语法格式如下:find [path] [expression]其中,path表示要查找的路径,可以是一个或多个目录,也可以是一个或多个文件;expression表示要查找的条件,可以是文件名、文件类型、文件大小等等。

下面是一些常用的find命令选项和表达式:1. -name:按照文件名进行查找,可以使用通配符;2. -type:按照文件类型进行查找,常见的类型有f(普通文件)、d (目录)、l(符号链接);3. -size:按照文件大小进行查找,可以使用+和-来表示大于或小于某个特定大小;4. -mtime:按照文件的修改时间进行查找,可以使用+和-来表示在某个时间之前或之后;5. -exec:对查找到的文件执行指定的命令。

二、使用find命令清理过期文件和目录使用find命令清理过期文件和目录的步骤如下:1. 确定要清理的路径:首先需要确定要清理的文件或目录所在的路径。

可以是一个具体的路径,也可以是多个路径,使用空格分隔。

2. 确定清理的条件:根据实际情况,确定要清理的文件或目录的条件。

可以根据文件名、文件类型、文件大小等等进行查找。

3. 执行清理操作:使用find命令结合-exec选项执行清理操作。

可以将要执行的清理命令放在-exec选项后面,并使用{}表示find命令查找到的文件或目录。

下面是一个清理过期文件和目录的示例:```shellfind /path/to/clean -type f -name "*.log" -mtime +7 -exec rm {} \;```上述示例中,/path/to/clean表示要清理的路径,-type f表示查找普通文件,-name "*.log"表示文件名以.log结尾,-mtime +7表示文件的修改时间在7天之前,-exec rm {} \;表示找到的文件执行rm命令进行删除操作。

高级Linux命令技巧使用find命令进行文件搜索和管理

高级Linux命令技巧使用find命令进行文件搜索和管理

高级Linux命令技巧使用find命令进行文件搜索和管理在Linux系统中,find命令是一种强大的工具,用于搜索和管理文件。

它可以帮助我们快速定位和操作特定的文件或目录。

本文将介绍一些高级的Linux命令技巧,以帮助您更好地使用find命令进行文件搜索和管理。

一、查找文件1. 按文件名查找:要按文件名查找文件,可以使用以下命令:find /path/to/search -name "filename"其中,/path/to/search是您要搜索的路径,"filename"是您要查找的文件名。

可以使用通配符来模糊匹配文件名,例如使用"*"表示任意字符。

2. 按文件类型查找:有时候我们需要查找某一类型的文件,可以使用以下命令:find /path/to/search -type f这将只会返回普通文件,不包括目录或其他类型的文件。

3. 按文件大小查找:要按文件大小查找文件,可以使用以下命令:find /path/to/search -size +10M这将返回大于10M的文件。

您可以使用k、M、G等单位来指定文件大小。

4. 按文件权限查找:要按文件权限查找文件,可以使用以下命令:find /path/to/search -perm 600这将返回具有权限为600的文件。

您可以根据需要自定义权限。

二、执行操作除了查找文件,find命令还可以执行操作,例如删除、复制或移动文件。

1. 删除文件:要删除文件,可以使用以下命令:find /path/to/search -name "filename" -delete这将删除与指定文件名匹配的文件。

2. 复制文件:用find命令复制文件的语法如下:find /path/to/search -name "filename" -exec cp {} /path/to/destination \;这将找到与指定文件名匹配的文件,并将其复制到指定的目标路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前阵子,我们审查了15件实事find命令的例子(第一部分)。

查找命令可以做很多比只是在寻找基于名称的文件(第2部分)在这篇文章中,让我们来讨论15高级find命令的例子,包括-根据它访问,修改或改变的时间查找文件,查找文件相比之下,执行操作找到的文件等。

基于访问/修改/更改时间查找文件你可以找到基于以下三个文件的时间属性的文件。

1.访问时间的文件。

文件访问时,访问时间得到更新。

2.的文件的修改时间。

文件内容修改时,修改时间得到更新。

3.更改文件的时间。

更改时间时,被更新的inode数据的变化。

在下面的例子中,min选项之间的差异和时间选项是参数。

∙分论点将它的参数为分钟。

例如,60分钟(1小时)= 60分钟。

∙时间参数,将它的参数为24小时。

例如,时间2 = 2 * 24小时(2天)。

∙虽然这样做的24个小时计算,小数部分都将被忽略,所以25小时为24小时,和47小时取为24小时,仅48小时为48小时。

要获得更清晰的参考atime的部分find 命令的手册页。

例1:找到在1个小时内被更改的文件想要通过文件修改时间找出文件,可以使用参数-mmin -mtime。

下面是man手册中有关mmin和mtime的定义。

∙-mmin n文件最后一次修改是在n分钟之内∙-mtime n文件最后一次修改是在n*24小时之内(译者注:也就是n天了呗)执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次修改时间在1个小时(60分钟)之内的文件或目录1 # find . -mmin -60同样的方式,执行下面例子中的命令,将会找到24小时(1天)内修改了的文件(文件系统根目录/ 下)1 # find / -mtime -1例2:找到1个小时内被访问过的文件想要通过文件访问时间找出文件,可以使用参数-amin -atime。

下面是man手册中有关amin和atime的定义。

∙-amin n文件最后一次访问是在n分钟之内∙-atime n文件最后一次访问是在n*24小时之内执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次访问时间在1个小时(60分钟)之内的文件或目录1 # find . -amin -60同样的方式,执行下面例子中的命令,将会找到24小时(1天)内被访问了的文件(文件系统根目录/ 下)1 # find / -atime -1例3:查找一个小时内状态被改变的文件(译者注:这里的改变更第1个例子的更改文件内容时间是不同概念,这里是更改的是文件inode的数据,比如文件的权限,所属人等等信息)要查找文件的inode的更改时间,使用-cmin和-ctime选项∙-cmin n文件的状态在n分钟内被改变∙-ctime n文件状态在n*24小时内(也就是n天内)被改变(译者注:如果上面的n为-n形式,则表示n分钟/天之内,n为+n则表示n分钟/天之前)下面的例子在当前目录和其子目录下面查找一个小时内文件状态改变的文件(也就是60分钟内):1 # find . -cmin -60同样的道理,下面的例子在根目录/及其子目录下一天内(24小时内)文件状态被改变的文件列表:1 # find / -ctime -1例4:搜索仅仅限定于文件,不显示文件夹上面的例子搜索出来不仅仅有文件,还会显示文件夹。

因为当一个文件被访问的时候,它所处的文件夹也会被访问,如果你对文件夹不感兴趣,那么可以使用-type f 选项下面的例子会显示30分钟内被修改过的文件,文件夹不显示:1 2 3 4 5 6 7 8 9101112131415161718192021# find /etc/sysconfig -amin -30../console./network-scripts./i18n./rhn./rhn/clientCaps.d./networking./networking/profiles./networking/profiles/default./networking/profiles/default/resolv.conf./networking/profiles/default/hosts./networking/devices./apm-scripts[注: 上面的输出包含了文件和文件夹]# find /etc/sysconfig -amin -30 -type f./i18n./networking/profiles/default/resolv.conf./networking/profiles/default/hosts[注: 上面的输出仅仅包含文件]例5:仅仅查找非隐藏的文件(不显示隐藏文件):如果我们查找的时候不想隐藏文件也显示出来,可以使用下面的正则式查找:下面的命令会显示当前目录及其子目录下15分钟内文件内容被修改过的文件,并且只列出非隐藏文件。

也就是说,以.开头的文件时不会显示出来的1 # find . -mmin -15 \( ! -regex ".*/\..*" \)基于文件比较的查找命令我们平时通过更别的东西进行比较,会更容易记住一些事情。

比如说我想找出在我编辑test文件之后编辑过的文件。

你可以通过test这个文件的编辑时间作为比较基准去查找之后编辑过的文件:例6:查找文件修改时间在某一文件修改后的文件:1 语法: find -newer FILE下面的例子显示在/etc/passwd修改之后被修改过的文件。

对于系统管理员,想知道你新增了一个用户后去跟踪系统的活动状态是很有帮助的(万一那新用户不老实,一上来就乱搞,你很快就知道了 ^_^):1 # find -newer /etc/passwd例7:查找文件访问时间在某一文件的修改时间之后的文件:1 # find -newer /etc/passwd下面的例子显示所有在/etc/hosts文件被修改后被访问到的文件。

如果你新增了一个主机/端口记录在/etc/hosts文件中,你很可能很想知道在那之后有什么文件被访问到了,下面是这个命令:1 # find -anewer /etc/hosts例8:查找状态改变时间在某个文件修改时间之后的文件:1 语法: find -cnewer FILE下面的例子显示在修改文件/etc/fstab之后所有文件状态改变过的文件。

如果你在/etc/fstab新增了一个挂载点,你很可能像知道那之后那些文件的状态发生了改变,这时候你可以使用如下命令:1 # find -cnewer /etc/fstab在查找到的文件列表结果上直接执行命令:这之前你已经看到了如果通过find命令去查找各种条件的文件列表。

如果你对这些find命令还不熟悉,我建议你看完上面的第一部分接下来这部分我们向你介绍如果在find命令上执行各种不同的命令,也就是说如何去操作find命令查找出来的文件列表。

我们能在find命令查找出来的文件名列表上指定任意的操作:1 # find <CONDITION to Find files> -exec <OPERATION> \;其中的OPERATION可以是任意的命令,下面列举一下比较常用的:∙ rm 命令,用于删除find查找出来的文件∙ mv 命令,用于重命名查找出的文件∙ ls -l 命令,显示查找出的文件的详细信息∙ md5sum,对查找出的文件进行md5sum运算,可以获得一个字符串,用于检测文件内容的合法性∙ wc 命令,用于统计计算文件的单词数量,文件大小等待∙执行任何Unix的shell命令∙执行你自己写的shell脚本,参数就是每个查找出来的文件名例9:在find命令输出上使用ls -l,列举出1小时内被编辑过的文件的详细信息1 2 3 4 5 6 7 # find -mmin -60./cron./secure# find -mmin -60 -exec ls -l {} \;-rw------- 1 root root 1028 Jun 21 15:01 ./cron-rw------- 1 root root 831752 Jun 21 15:42 ./secure例10:仅仅在当前文件系统中搜索系统管理员有时候仅仅想在/挂载的文件系统分区上搜索,而不想去搜索其他的挂载分区,比如/home/挂载分区。

如果你有多个分区被挂载了,你想在/下搜索,一般可以按下面的这样做下面这个命令会搜索根目录/及其子目录下所有.log结尾的文件名。

如果你有多个分区在/下面,那么这个搜索会去搜索所有的被挂载的分区:1 # find / -name "*.log"如果我们使用-xdev选项,那么仅仅会在在当前文件系统中搜索,下面是在xdev的man page上面找到的一段-xdev的定义:∙-xdev Don’t descend directories on other filesystems.下面的命令会在/目录及其子目录下搜索当前文件系统(也就是/挂载的文件系统)中所有以.log结尾的文件,也就是说如果你有多个分区挂载在/下面,下面的搜索不会去搜索其他的分区的(比如/home/)1 # find / -xdev -name "*.log"例11:在同一个命令中使用多个{}linux手册说命令中只能使用一个{},不过你可以像下面这样在同一个命令中使用多个{}1 # find -name "*.txt" cp {} {}.bkup \;注意,在同一个命令中使用这个{}是可以的,但是在不同的命令里就不行了,也就是说,如果你想象下面这样重命名文件是行不通的1 find -name "*.txt" -exec mv {} `basename {} .htm`.html \;例12:使用多个{}实例你可以像下面这样写一个shell脚本去模拟上面那个重命名的例子1 # mv "$1" "`basename "$1" .htm`.html"上面的双引号是为了防止文件名中出现的空格,不加的话会有问题。

然后你把这个shell 脚本保存为mv.sh,你可以像下面这样使用find命令了1 find -name "*.html" -exec ./mv.sh '{}' \;所以,任何情况下你在find命令执行中想使用同一个文件名多次的话,先写一个脚本,然后在find中通过-exec执行这个脚本,把文件名参数传递进去就行,这是最简单的办法例13:将错误重定向到/dev/nul重定向错误输出一般不是什么好的想法。

相关文档
最新文档