目录
一,find
参数及其用
常见用法
二,where,which,locate
一,find
可按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件
语法:find 路径 [参数] 文件名 (不写路径默认路径就是当前路径)
参数及其用
常见用法
1.按照文件名搜索
[root@localhost ~]# find 路径 [选项] 搜索内容
选项:
-name: 按照文件名搜索
-iname: 按照文件名搜索,不区分文件名大小写
-inum: 按照 inode 号搜索
[root@localhost ~]# find /etc/ -name "host*"
/etc/host.conf
/etc/hosts
/etc/avahi/hosts
/etc/nvme/hostnqn
/etc/nvme/hostid
/etc/hostname
2.按照目录名和基本文件路径查找
[root@localhost ~]# find /etc/ -path "*ssh/ssh*"
/etc/ssh/ssh_config
/etc/ssh/ssh_config.d
/etc/ssh/ssh_config.d/50-redhat.conf
/etc/ssh/sshd_config
/etc/ssh/sshd_config.d
/etc/ssh/sshd_config.d/50-redhat.conf
/etc/ssh/sshd_config.d/01-permitrootlogin.conf
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
3.按照文件大小搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-size [+|-]大小: 按照指定大小搜索文件,“+”的意思是搜索比指定大小还要大的文件,
“-”的意思是搜索比指定大小还要小的文件
注意:-size 0可以查找大小为0的普通文件。如果要查找没有任何文件的目录或者空的普通文件可以使用-empty
[root@localhost ~]# find -size +1M
./.cache/gnome-software/appstream/components.xmlb
./.cache/gnome-software/odrs/ratings.json
4.按照修改时间搜索
Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们可以按照时间来搜索文件。
root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-atime [+|-]时间: 按照文件访问时间搜索
-mtime [+|-]时间: 按照文件数据修改时间搜索
-ctime [+|-]时间: 按照文件权限修改时间搜索
-newer file: 把比file修改时间更新的文件列出来
-newerXY:如果所考虑的文件的时间戳X比文件引用的时间戳Y新,则成功。字母X和Y可以是以下任意字母。
a文件引用的访问时间
B文件引用的出生时间
c索引节点状态更改参考时间
m文件引用的修改时间
t将所指定的参数理解为一个具体的时间值
-
-5:代表 5 天内修改的文件。
-
5:代表前 5~6 天那一天修改的文件。
-
+5:代表 6 天前修改的文件。
5.按照权限搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-perm 权限模式: 查找文件权限刚好等于“权限模式”的文件
-perm -权限模式: 查找文件权限全部包含“权限模式”的文件
-perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件
如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:
[root@localhost ~]# find / -perm 222
/root/file
6.按照所有者和所属组搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件
-gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件
-user 用户名: 按照用户名查找所有者是指定用户的文件
-group 组名: 按照组名查找所属组是指定用户组的文件
-nouser: 查找没有所有者的文件
7.按照文件类型搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-type d: 查找目录
-type f: 查找普通文件
-type l: 查找软链接文件
8.逻辑运算符
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-a: and 逻辑与
-o: or 逻辑或
-not=-!: not 取反
优先级:与>或>非
9.后面可跟用于进一步处理搜索结果的命令 -exec …… {}\;
示例:在整个文件系统中找出所有归属于kongd用户的文件并复制到/root/findresults
目录。
该实验的重点是-exec {} \;
参数,其中的{}表示find命令搜索出的每一个文件,并且命令的结尾必须是\;
[root@kongd ~]# find / -user kongd -exec cp -a {} /root/findresults/ \;{}表示前面查找出来的全部文件 \;表示命令结束