Linux下的find命令

摘要

在Linux下、需要很多的命令来实现系统功能的基本调用 ;;;


其中】find 命令就是一个很重要的命令;;;

下面我们就来主要介绍一下find这个命令的使用方法。。。。

find命令简介与使用方法(非常的重要)


find命令的功能:

Linux下find命令在目录结构中搜索文件,并执行指定的操作。


命令格式

find  pathname[命令参数]   -options[命令选项] [-print -exec -ok ...]


pathname: find命令所查找的目录路径

-print: find命令将匹配的文件输出到标准输出。
例如我们要查找的目录为class3
代码
[wxeast@localhost ~]$ find ./Linux/class3 -print
./Linux/class3
./Linux/class3/proBar
./Linux/class3/Makefile
./Linux/class3/mytest
./Linux/class3/.test.c.swp
./Linux/class3/test.c
./Linux/class3/proBar.c
./Linux/class3/.test.c.swo
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;
之间的空格。
假设我们要将找到为文件使用 【ls】命令来遍历
代码实现
[wxeast@localhost ~]$ find ./Linux/class3 -exec ls {} \; 
Makefile  mytest  proBar  proBar.c  test.c
./Linux/class3/proBar
./Linux/class3/Makefile
./Linux/class3/mytest
./Linux/class3/.test.c.swp
./Linux/class3/test.c
./Linux/class3/proBar.c
./Linux/class3/.test.c.swo


-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
使用上述的代码来演示一下
[wxeast@localhost ~]$ find ./Linux/class3 -ok ls {} \; 
< ls ... ./Linux/class3 > ? y
Makefile  mytest  proBar  proBar.c  test.c
< ls ... ./Linux/class3/proBar > ? y
./Linux/class3/proBar
< ls ... ./Linux/class3/Makefile > ? y
./Linux/class3/Makefile
< ls ... ./Linux/class3/mytest > ? y
./Linux/class3/mytest
< ls ... ./Linux/class3/.test.c.swp > ? y
./Linux/class3/.test.c.swp
< ls ... ./Linux/class3/test.c > ? y
./Linux/class3/test.c
< ls ... ./Linux/class3/proBar.c > ? y
./Linux/class3/proBar.c
< ls ... ./Linux/class3/.test.c.swo > ? y
./Linux/class3/.test.c.swo


相比于-exec来说的话,,,,-ok更加的安全,,,,但是要是遍历的话(文件过多的话,,,就会很麻烦)

option :



下面的是一些特殊的查找的方法
-name 按照文件名查找文件。
假设查找的是test.c文件


但要是没找的话   
系统则什么都不返回


-perm       按照 文件的权限来查找文件
假设在Linux目录下查找的文件权限为  600
[wxeast@localhost ~]$ find ./Linux -perm  600 -print
./Linux/class3/.test.c.swp
[wxeast@localhost ~]$ find ./Linux -perm  600 -exec ls {} \;
./Linux/class3/.test.c.swp
[wxeast@localhost ~]$ find ./Linux -perm  600 -exec ls -l {} \;
-rw-------. 1 wxeast wxeast 12288 Apr  2 08:18 ./Linux/class3/.test.c.swp
[wxeast@localhost ~]$ 


如果要是没找到的话 ,,则什么都不返回



-user 按照文件属主来查找文件 
在主工作目录下 Linux来查找的  属主为 wxeast的文件
[wxeast@localhost ~]$ find ./Linux -user wxeast  -print
./Linux
./Linux/class3
./Linux/class3/proBar
./Linux/class3/Makefile
./Linux/class3/mytest
./Linux/class3/.test.c.swp
./Linux/class3/test.c
./Linux/class3/proBar.c
./Linux/class3/.test.c.swo


-group 按照的文件的所属组来查找文件

这种查找方法与 上面的    -user查找的方法是相同的


-mtime   -n +n 按照文件内容的更改时间来查找文件,                                                                                        -n表示文件更改时间距现在n天以内,                                                          + n表示文件更改时间距现在n天以前。


我们要找的是在3天以内修改文件内容的文件



-atime    -n  +n 按照文件的执行的时间来查找文件

-ctime    -n  +n 按照文件的属性更改时间来查找文件

上面两种查找方式    与  mtime的查找方式是相同的。。。


-type 查找某一类型的文件,诸如:
b - 块设备文件。
d -目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件

假设要在    ~/Linux  路径下找的文件的类型为 d

[wxeast@localhost ~]$ find ~/Linux -type  d -exec  ls -l {} \;
total 4
drwxrwxr-x. 2 wxeast wxeast 4096 Apr  2 14:36 class3
total 28
-rw-rw-r--. 1 wxeast wxeast  234 Apr  2 08:17 Makefile
-rwxrwxr-x. 1 wxeast wxeast 5996 Apr  2 08:18 mytest
-rwxrwxr-x. 1 wxeast wxeast 5219 Apr  2 08:13 proBar
-rw-rw-r--. 1 wxeast wxeast  276 Apr  2 08:20 proBar.c
-rw-rw-r--. 1 wxeast wxeast  192 Apr  2 14:35 test.c

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计


假设要找的文件的大小为     20   
[wxeast@localhost ~]$ find  .  -size  2  -print
./.vimrc
./.config/user-dirs.dirs
./.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
./.gconf/apps/panel/applets/window_list/prefs/%gconf.xml
./.pulse/e4895a74532f487787d238ce00000027-card-database.tdb

当然了  、、、这些都是最基本的


我们也可以将他们      结合使用   


假设我们要找的文件  3天以内修改过文件的内容  文件大小为4  文件的所属组wxeast的文件
[wxeast@localhost ~]$ find -mtime  -3 -size 4 -group wxeast -print
./.gconf/desktop/gnome/accessibility/keyboard/%gconf.xml
./.ICEauthority



上面这些大概就是find 指令的大部分用法了 ,,,,如果你要是有什么不了解的问题  ,,可以直接发表评论






 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值