Linux系统四剑客(之一) - find 命令

Linux find命令

  说明:Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

  语法:

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

  参数说明 :

find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比文件 file 更晚被读取过的文件

-atime n : 在过去n天内被读取过的文件

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比文件 file 更新的文件

-ctime n : 在过去n天内被修改过的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。

d: 目录

c: 字型装置文件

b: 区块装置文件

p: 具名贮列

f: 一般文件

l: 符号连结

s: socket

示例:

  • 示例1

命令 find . -type f  与 find -type f  一样

都是查找当前目录(包含子目录)中的所有一般文件

  • 示例2

列出当前目录(包含子目录)中的指定的文件

find . -name "*.txt"

些命令会列举出所有以.txt结果的文件或目录

如果只想查找文件 则  find . -name "*.txt" -type f 即可

如果只想查找目录 则 find . -name "*.txt" -type d 即可

  • 示例3

列出指定10天以内更新过的文件

find . -name "*.txt" -type f -mtime -10 即可

如果是想列出10天以外更新过的文件 find . -name "*.txt" -type f -mtime +10 即可

注意: 还有其它时间上的参数

说明:

1. accessed表示访问时间,读一次文件,这个时间就更新一次。一般使用cat命令读取文件后,这个时间会被更新。
2. changed表示最后修改时间,使用“ls -l”命令得到的就使这个时间,一般使用vi/vim命令修改文件后,这个时间会被更新。
3. modified表示状态改动时间,一般使用chown/chmod命令之后,这个时间会被更新。

  • 示例4

在以上的基础上 继续查找 文件大小在10k以内的文件

find . -name "*.txt" -type f -mtime -10 -size -10k

文件大小在10k以上的文件 则 

find . -name "*.txt" -type f -mtime -10 -size 10k

查找具有读写权限的文件 则

find . -name "*.txt" -type f -mtime -10 -size 10k -perm 644

列出他们的详细信息

find . -name "*.txt" -type f -mtime -10 -size -10k -exec ls -l {} \;

如果想删除这些文件

find . -name "*.txt" -type f -mtime -10 -size -10k -ok -rm -rf {} \;

此时删除是会提示 是否删除这个文件 输入 yes / no 即可

如果不想提示 则将命令中的 -ok 删除即可

  • 示例5

从当前目录中按照创建时间倒序排序 取出前n条

find -type f -name "TEST4CWW*"|ls -t |head -n 5

 

 

 

今日暂到此处,待更新 ... ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值