1-12 RHEL7-find命令的使用

1、文件查找find
find命令是在目录结构中,搜索文件,并执行特定的操作
find命令提供了相当多的查找条件,功能很强大

2、格式
usage:find pathname -options[-print]

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

3、参数
-print 输出   (有时可有可无、有时必须有、有时必须无)
pahtname:路径  #在指定路径中搜索

4、选项
-option:(选项)

-name ""   #根据文件名称进行查找
-perm       #根据文件权限进行查找
-prune      #忽略,如果是个目录,则不进入查找
-depth      #在指定目录中查找后,进入其子目录查找,
                 #当有-depth选项时,忽略prune
-user         #根据文件属主查找
-nouser    #查找没有属主的文件(在/etc/passwd中没有这个用户),不需要加用户名
-group     #根据文件属组查找
-nogroup #查找没有属组的文件,同nouser
-mtime -n +n  atime ctime mtime  #根据文件修改时间查找,
                                                        #-n n天以内,+n n天以前(不是未来时间哦)
-type [b,d,c,p,l,f]#根据文件类型查找
             b块设备、d目录、c字符设备、p管道、l连接、f普通
-size     #根据文件长度进行查找
-fstype  #在某个文件系统中查找文件
-mount #不再其他的文件系统中查找,不跨越挂载点
-follow #如果找到的是连接文件,则会跟随到源文件
-cpio    #将查找到的结果,备份     木有这个选项啊?!

================================================

echo $HOME   #查看home变量的值,即确定~所代表的路径

实验:
1.通过文件名查找
文件名选项是find命令最常用的选项,
要么单独使用该选项,要么和其他选项一起使用。

注意
可以使用某种文件名模式来匹配文件,
记住要用引号将文件名模式引起来。

不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.txt的文件,
使用~作为 ‘pathname‘参数,波浪号~代表了你的$HOME目录。

想要在/etc目录中查找文件名以host开头的文件,可以用:

[[email protected] ~]# find /etc -name "host*"
[[email protected] ~]# find /etc -name "host*" -print

[[email protected] ~]# find ~ -name "*.txt" -print #必须带""

2.通过权限查找
按照文件权限模式用-perm选项,

按文件权限模式来查找文件的话。最好使用八进制的权限表示法。

举例:
如在当前目录下查找文件权限位为755的文件,
属主可以读、写、执行,其他用户可以读、执行的文件,
可以用:
[[email protected] ~]# find ~ -perm 777

3.忽略
使用-prune选项来指出需要忽略的目录。

在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。
[[email protected] ~]#find test -path “test/dir0” -prune -o -print
忽略目录test/dir0中的文件

-path -prune 用法:详见: find命令中选项-path和-prune的使用

4.depth
希望先匹配当前所有的文件,再在子目录中查找。
在下面的例子中, find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

它将首先匹配所有的文件然后再进入子目录中查找。
[[email protected] ~]#find test -depth -path “test/dir0/*” -print
注释:-depth要在路径前面,不然会警报

5.user nouser
[[email protected] ~]#find /opt -user xiaogan

[[email protected] ~]#find /opt -nouser

6.组
同5

7.mtime
如果希望按照更改时间来查找文件,可以
使用mtime,atime或ctime选项。
如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。

用减号-来限定更改时间在距今n日以内的文件,
用加号+来限定更改时间在距今n日以前的文件。

希望在系统/root目录下查找更改时间在5日以内的文件,

find /root -mtime -5 -print

[[email protected] ~]#find . -mtime -3 #查找3天内修改过的文件

[[email protected] ~]#find . -mtime +3 #查找3天前修改过的文件

8.type  !

-type 查找某一类型的文件,
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l- 符号链接文件。
f - 普通文件。
! 取反
在/etc目录下查找所有的目录,可以用:
find /etc -type d -print

在当前目录下查找除目录以外的所有类型的文件,
[[email protected] ~]# find . ! -type d

在/etc目录下查找所有的符号链接文件
find /etc -type l -print
[[email protected] ~]#find /dev -type b #查找/dev目录下的块设备文件

[[email protected] ~]#find /dev ! -type b #查找/dev目录下的非块设备文件

[[email protected] ~]# find / -type p

9.size

-a -o   -a  and  -o or  -not 非 !非
可以按照文件长度来查找文件;
这里所指的文件长度既可以用块(block)来计量,
也可以用字节来计量。
以字节计量文件长度的表达形式为N c;
以块计量文件长度只用数字表示即可。

在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。

在当前目录下查找文件长度大于1 M字节的文件:

find . -size +1000000c -print

在/home/apache目录下查找文件长度恰好为100字节的文件:
find /home/apache -size 100c -print

在当前目录下查找长度超过10块的文件(一块等于512字节):

find . -size +10 -print

find /etc/ -size +20k -a -size -50k
-a  and  并且   -o or 或者
+ 超过  -  低于
[[email protected] ~]#find . -size +20k -a -size -30k #查找当前目录下大小在20k~30k之间的文件

时间: 2024-10-11 16:48:50

1-12 RHEL7-find命令的使用的相关文章

你一定要知道的关于Linux文件目录操作的12个常用命令

写在前面: 1,<你一定要知道的关于Linux文件目录操作的12个常用命令>是楼主收集的关于Linux文件目录操作最常用的命令,包括文件或目录的新建.拷贝.移动.删除.查看等,是开发人员操作Linux系统的常用命令,所以你一定要知道. 2,<你一定要知道的关于Linux文件目录操作的12个常用命令>适合初学者,对于Linux大神的请绕过,不过欢迎一起讨论学习! 3,此次收集,多谢来自http://www.cnblogs.com/peida/archive/2012/10/23/27

RHEL7 关于命令行补齐功能

我们都知道在LINUX下可以使用命令行补齐功能来快捷的输入命令,但在RHEL7或者CentOS7,变化很多了.很多配置命令变得很长了,手动输入命令略显繁琐,好在RHEL7支持命令行加参数自动补齐,增加的很多新命令都可以使用参数自动补齐.例如防火墙配置使用了firewall-cmd ,添加规则什么的,如果记不住参数,按照老办法,只能help,或者man,但其实只要使用tab健就可以帮你列出可以使用的参数,很方便吧.但是,默认情况下,如果是完整安装带桌面环境的 server with GUI    

12.12 &amp;12.13 基础命令练习一

12.12 &12.13 基础命令练习一 内容: 1. mkdir  ls  pwd   cd   touch    vi/vim  echo   cat 2. 输出/出入重定向 3. EOF 起止符 往文件中写入多行内容 4. xargs  -n    分组显示 5. cp  rm  mv 6. man帮助手册 7./data  和 /data/区别 7. find   cd 8. grep  head,tail  sed  awk  排除 9. head+tail  sed  awk  gr

12.19&amp;12.20 -基础命令练习二

12.19&12.20 基础命令练习二 第1章 Linux开机启动过程 linux启动过程 1.开启开关 2.bios开机自检 3.mbr引导 4.grub菜单 选择内核 5.加载内核 6.启动init进程  init进程是linux启动的时候运行的第一个进程 7.从/etc/inittab读取运行级别 8.根据/etc/rc.d/rc.sysinit 初始化系统 (设置主机名 ip地址) 9.根据运行级别启动对应的软件(开机自启动软件) 10.运行mingetty 显示登录界面 第2章 PAT

RHEL7 - 从命令行管理文件

RHEL中重要的目录 位置 用途 /usr 安装的软件.共享的库,包括文件和静态只读程序数据.重要的子目录有: -/usr/bin:用户命令 -/usr/sbin:系统管理命令 -/usr/local:本地自定义软件 /etc 系统的配置文件 /var 系统的可变数据,在系统启动之间保持永久性. 动态变化的文件(如数据库.缓存目录.日志文件.打印机后台处理文档和网站内容)可以在/var下找到 /run 自上一次系统启动以来启动的进程的运行时数据.包括进程ID文件和锁定文件.等等.此目录中的内容在

第五天 RHEL7 基础命令操作

1:终端 tty :控制台终端 rhel(7个)切换 ctrl+alt+f1图形 ctrl+alt+f2-f6 字符pts : 虚拟终端(伪终端) 如ssh终端,远程终端 shift+alt+t 新建 alt+f4 关闭 alt+数字键 切换whoami 查看当前用户 who am i 查看pts终端号shift+ctrl+加号 放大pts终端字体 ctrl+减号 减小pts终端字体ssh +ip 远程主机 2:shell提示符[[email protected] ~]# 用户名-主机名-当前目

linux基础:12、基础命令(5) - 用户管理

配置文件) /etc/passwd 文档结构: 由":"分隔成7个字段"username:x:uid:gid:remark:homedir:shell" 默认权限:-rw-r--r-- 各字段含义: (1) username,用户名称 命名规则:大小写字母.数字.减号(不能出现在首位).点以及下划线,其他字符不合法. (2) x,密码空位键 密码安全起见放到 /etc/shadow. (3) uid,用户ID 可用ID,0-4294967294=2^32-2: ro

设置RHEL7从命令行模式启动

RHEL7修改以前12345的启动级别,在RHEL 7中使用两种对象的方式来定义启动模式.即命令行和图形两种对象,默认使用图形方式. 定义说明cat /etc/inittab # multi-user.target: analogous to runlevel 3 # graphical.target: analogous to runlevel 5 定义方式 # ln -sf /lib/systemd/system/<target name>.target /etc/systemd/syst

每天一个linux命令(12):more命令

1.命令简介 more (more) 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比,方便逐页阅读(file perusal filter for crt viewing) .more名单中内置了若干快捷键,按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中按h可以查看说明文件 . 2.用法 more [-dlfpcsu] [-num] [+/pattern] [+

每天一个 Linux 命令(12):more命令

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 .more命令从前向后读取文件,因此在启动时就加载整个文件. 1.命令格式: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 2.命令功能: more命令和cat的功能一样都