CentOS 7基础操作08_Linux查找目录和文件

1、which命令——查找用户所执行的命令文件存放的目录

        which命令用于查找Linux命令程序并显示所在的具体位置.其搜索范围主要由用户的环境变量PATH决定(可以执行言echo sPATH”命令查看),这个范围也是Linux操作系统在执行命令或程序时的默认搜索路径。

        which命令使用要查找的命令或程序名作为参数.默认当找到第一个目标后即不再继续查找.若希望在所有搜索路径中查找.可以添加“-a”选项。例如,执行“which ls”命令后,可以找到名为Is的、位于/usr/bin/ls的命令程序文件,具体操作如下:

[root@blab ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@blab ~]# which ls
alias ls='ls --color=auto'
  /usr/bin/ls

        需要注意的是,由于Shell内置的命令并没有对应的程序文件,因此使用which查找内部命令时.将找不到对应的程序。例如,查找内部命令history的位置时,会提示在搜索路径中没有这个程序文件.具体操作如下。

[root@blab ~]# which history 
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

2、find命令——查找文件或目录

        find 命令是 Linux操作系统中功能非常强大的查找命令,可以根据目标的名称类型、大小等不同属性进行精细查找,fird命令在查找时采用递归的方式,其使用形式相当灵活,也可以相当复杂.这里只介绍最常用的几种用法。find命令的基本使用格式如下:

find    [查找范围]    [查找条件表达]

        其中,查找范围对应的是在其中查找文件或子目录的目录位置(可以有多个),而查找条件则决定了 find命令根据哪些属性、特征进行查找。较常用的几种查找条件类型如下所述。

  • 按名称查找:关键字为“-name”,根据目标文件的名称进行查找.允许使用“*”及“?”通配符。
  • 按文件大小查找:关键字为“-size”,根据目标文件的大小进行查找.一般使用“+”和“-“号设置超过或小于指定的大小作为查找条件.常用的容量单位包括kB(注意k是小写).MB、GB.
  • 按文件属主查找:关键字为“-user”,根据文件是否属于目标用户进行查找、
  • 按文件类型查找:关键字为“-type”,根据文件的类型进行查找,这里的类型指的是普通文件(f).目录(d),块设备文件(b)、字符设备文件 (c)等。块设备指的是成块读取数据的设备〈如硬盘、内存等).而字符设备指的是按单个字符读取数据的设备(如键盘、鼠标等)

        设置find命令的查找条件时,若需要使用"*"或“?”通配符,最好将文件名用双引号括起来以避免当前目录下符合条件的文件干扰查找结果。例如,以下操作将在/etc目录中递归查找名称以"resol”开头、以~.conf”结尾的文件。

[root@blab ~]# find /etc/ -name "resol*.conf"
/etc/resolv.conf

        使用"-type"查找条件可以过滤出指定类型的文件。例如,以下操作将在/boot目录中查找出所有的文件夹(对应的类型为d).而忽略其他类型的文件。

[root@blab ~]# find /boot/ -type d
/boot/
/boot/efi
/boot/efi/EFI
/boot/efi/EFI/centos
/boot/efi/EFI/centos/fw
/boot/efi/EFI/BOOT
/boot/grub2
/boot/grub2/i386-pc
/boot/grub2/locale
/boot/grub2/fonts
/boot/grub

        需要同时使用多个查找条件时,各表达式之间可以使用逻辑运算符“-a”与“-o”分别表示而且(and)或老(c)例如以下两个操作使田了两个杏坊冬件即‘招1024kB ”和“名称以vmlinuz开头”,但分别使用“-8“-0°组合两个条件,前者表示两个条件必须同时满足.后者表示只需满足其中任何一个条件即可。

[root@blab ~]# find /boot/ -size +1024k -a -name "vmlinuz*"
/boot/vmlinuz-3.10.0-957.el7.x86_64
/boot/vmlinuz-0-rescue-1971b91db4664a60b0e21d5a701b32bc
[root@blab ~]# 
[root@blab ~]# find /boot/ -size +1024k -o -name "vmlinuz*"
/boot/efi/EFI/centos/MokManager.efi
/boot/efi/EFI/centos/mmx64.efi
/boot/efi/EFI/centos/shim.efi
/boot/efi/EFI/centos/shimx64-centos.efi
/boot/efi/EFI/centos/shimx64.efi
/boot/efi/EFI/BOOT/BOOTX64.EFI
/boot/grub2/fonts/unicode.pf2
/boot/System.map-3.10.0-957.el7.x86_64
/boot/vmlinuz-3.10.0-957.el7.x86_64
/boot/initramfs-0-rescue-1971b91db4664a60b0e21d5a701b32bc.img
/boot/vmlinuz-0-rescue-1971b91db4664a60b0e21d5a701b32bc
/boot/initramfs-3.10.0-957.el7.x86_64.img
[root@blab ~]# 
上一篇:C 语言实现在终端里输出二维码


下一篇:【Postman接口测试】第五节.Postman接口测试项目实战(下)-十、课程删除接口postman测试