Linux下的find指令

     Linux下我们可以用到三个命令来查找文件,通常使用whereis或者是locate来检查,如果真的找不到了我们就以find来找。因为whereis和locate是利用数据库来查找数据,所以相当快速,而且并没有实际查询硬盘,比较节省时间。但是find是直接查找硬盘,如果你的硬盘比较老旧的话,就会花费很长的时间。 

   find指令需要在目录结构中搜索文件,并执行指定的操作。它用于在文件树中查找文件,并做出相应的处理,可能访问到磁盘。find命令提供了相当多的查找条件,功能十分强大,所以它的选项也非常的多。即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只要你具有相应的权限。

     find指令的命令格式如下:

                          find pathname -options [-print -exec -ok ...] 

   它的命令参数有:

       pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 

        
 -print: find命令将匹配的文件输出到标准输出。 
 

         -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\; 之间的空格。 
 

         -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 


     接下来我们就通过图片来看一下find指令的各种命令选项有什么作用

    ①-name 按照文件名查找文件

    我们可以看到在code目录下中有file1的文件,当输入命令find -name file1的命令时,下面就给我们直接找到了这个文件,而因为没有file2这个文件,所以在输入find -name file2的命令时,就什么都不输出。

   ②-perm指令 按照文件权限来查找文件


输入ll,各文件权限如图,当输入find  -perm 755指令时,


输出了以下文件,其中便包含刚才有的权限为755的文件

   ③-user指令 按文件属主来找文件

输入find -user root ,表示使用者为root的文件如下


 ④-group指令,按文件所属组来找文件

输入find -group root,表示所属组为root的文件如下


  ⑤-mtime -n +n指令,按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间在n天以外。find命令还有-atime和-ctime选项,但都和-mtime选项相同。

  输入 find -mtime -8指令,表示8天以内被修改过的文件如下



⑥还有-nogroup和-nouesr选项。

-nogroup 查找无有效所属组的文件,即该文件所属的组在/ 
etc/groups中不存在。 
-nouser 查找无有效属主的文件,即该文件的属主在/etc/ 
passwd中不存在。 


Linux 用find命令查找文件大小为XX的文件的办法: 
例如:一个文件5556字节,可以这样写 
find /root -size -5557c -size +5555c -exec ls -ld {} \; 
即查找大于5555字节小于5557字节的文件,以上查找的是/root目录。 
find /root -size -500K -size +50K -exec ls -ld {} \; 
查找 小于500K,大于50K的文件。 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值