RHEL之(六)Red Hat Linux 访问Linux文件系统
访问Linux文件系统
一、文件查找
(1)如何查找可执行文件:which
在linux系统中,使用命令其实就是执行一个个的bin目录下的可执行文件
使用命令which即可找到该命令的详细目录

(2)根据关键字模糊查询文件:locate
locate命令可以在搜寻数据库时快速找到档案,locate为模糊查询,数据库由命令updatedb来更新。
当指定符合条件时,locate会去储存档案与目录名称的数据库内进行搜索。locate查询文件时,会去搜索数据库/var/lib/mlocate/mlocage.db,寻找合乎范本样式条件的档案或目录。
可以使用特殊字元(如”*” 或”?”等)来指定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录等。
Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
更新数据库索引:

locate命令查询文件:

Tips:参考链接https://www.cnblogs.com/xqzt/p/5426666.html
(3)挂载命令:mount
当需要访问linux根目录之外的文件时,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除关联关系的过程称之为“卸载”。
Tips:“挂载点”的目录需要以下几个要求:
(1)目录事先存在,可以用mkdir命令新建目录;
(2)挂载点目录不可被其他进程使用到;
(3)挂载点下原有文件将被隐藏。
命令格式:mount [-t vfstype] [-o options] device dir
A、-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
光盘或光盘镜像:iso9660 (考ansible时会使用到)
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
B、-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
C、device 要挂接(mount)的设备。
D、dir设备在系统上的挂接点(mount point)。
常用的挂载目录:

挂载命令:mount/umount
使用命令mount,可以查看当前已挂载的所有文件目录,以下示例使用grep筛选出之前挂载的光盘文件


Tips:参考链接
https://blog.csdn.net/daydayup654/article/details/78788310
http://tutu.spaces.eepw.com.cn/articles/article/item/70737
https://www.cnblogs.com/sparkdev/p/9015312.html
(4)有条件的查找:find
根据设置的条件,从定义的路径中查找符合要求的文件或者目录
命令:find 查找起始路径 查找条件 (-exec 或 | xargs 后续执行操作\;)
A、以拥有者(属主)为条件:-user

B、以文件大小为条件:-size

C、以文件/目录名关键字为条件:-name

D、以文件/目录权限为关键字:-perm



E、指定查找类型:-type


F、以时间为条件:-atime,-ctime,-mtime
Access Time(atime):最近一次访问时间
Modify Time(mtime):最后一次修改时间(文件内容等)
Change Time(ctime):最后一次更新时间(权限,属主等)
可以使用命令stat查看以上三种类型时间



G、对文件查找结果进行处理:-exec,| xarg
find 查找起始路径 查找条件 -exec 后续执行操作 \;
find 查找起始路径 查找条件 | xargs 后续执行操作 \;
注意要在后续执行操作加上\;

命令详解:
find /usr/share/doc/man-pages/ -maxdepth 3 -type f -exec cp {} /tmp/findresults \;
可以将命令拆解成两部分,分别为
a. find /usr/share/doc/man-pages/ -maxdepth 3 -type f
查询目录/usr/share/doc/man-pages/下的所有文件或子目录,查询目录深度为3,查询类型为文件。
b. -exec cp {} /tmp/findresults \;
将a查询得到的结果,复制进刚新建的目录/tmp/findresults中,记得在命令后加上\;
Tips:
参考链接 https://www.cnblogs.com/wse-awing/p/11068451.html