使用Linux find命令:查找目录或文件
find 命令可以在命令的层次结构中查找文件和目录。它可以使用文件名、文件大小、修改时间和类型等条件进行查找。
find 命令的语法格式如下:
[root@bogon ~]# find 搜索路径 [选项] 搜索内容
find 命令有两个参数分别用来指定搜索路径和搜索内容。
find 命令可以根据不同的选项指定按照不同类型的搜索内容进行查找。选项的可选值如下:
按照文件名搜索:
-name:按照文件名搜索;
-iname:按照文件名搜索,不区分文件名大小;
-inum:按照 inode 号搜索。
注意,在使用 find 命令进行搜索时,搜索的文件名必须和搜索的内容一致才能找到;Linux 中的文件名是区分大小写的,因此可以用 -iname 来搜索;每个文件都有 inode 号,如果我们知道 inode 号,也可以按照 inode 号来搜索文件。
按照文件大小搜索:
-size[+ | -]n:按照指定大小搜索文件,查找大小大于 +n、小于 -n 或等于 n 的文件。n 代表 512 字节大小的数据块个数。
按照修改时间搜索:
-atime [+ | -]n:按照文件访问时间搜索,查找访问时间已经超过 +n 天、低于 -n 天或正好等于 n 天的文件;
-mtime [+ | -]n:按照文件更改时间搜索,查找更改时间是在 +n 天之前、不到 -n 天或正好在 n 天之前的文件。
按照所有者和所属组搜索:
-uid 用户ID:按照用户 ID 查找所有者是指定 ID 的文件。
-gid 组ID:按照用户组 ID 查找所属组是指定 ID 的文件。
-user 用户名:按照用户名查找所有者是指定用户的文件。
-group 组名:按照组名查找所属组是指定用户组的文件。
-nouser:查找没有所有者的文件。
按照文件类型搜索:
-type d:查找目录。
-type f:查找普通文件。
-type l:查找软链接文件。
逻辑运算符。
-a:意思为“and逻辑与”。-a 代表逻辑与运算,-a 的两个条件都成立,find 搜索的结果才成立。
-o:意思为“or逻辑或”。-o 选项代表逻辑或运算,-o 的两个条件只要其中一个成立,find 命令就可以找到结果。
-not:意思为“not逻辑非”。-not 是逻辑非,也就是取反。
【例 1】目录下查找文件名为 test 的文件
如上所示,查找出 / 根目录下文件名为 test 的所有文件。
find 命令的语法格式如下:
[root@bogon ~]# find 搜索路径 [选项] 搜索内容
find 命令有两个参数分别用来指定搜索路径和搜索内容。
find 命令可以根据不同的选项指定按照不同类型的搜索内容进行查找。选项的可选值如下:
按照文件名搜索:
-name:按照文件名搜索;
-iname:按照文件名搜索,不区分文件名大小;
-inum:按照 inode 号搜索。
注意,在使用 find 命令进行搜索时,搜索的文件名必须和搜索的内容一致才能找到;Linux 中的文件名是区分大小写的,因此可以用 -iname 来搜索;每个文件都有 inode 号,如果我们知道 inode 号,也可以按照 inode 号来搜索文件。
按照文件大小搜索:
-size[+ | -]n:按照指定大小搜索文件,查找大小大于 +n、小于 -n 或等于 n 的文件。n 代表 512 字节大小的数据块个数。
按照修改时间搜索:
-atime [+ | -]n:按照文件访问时间搜索,查找访问时间已经超过 +n 天、低于 -n 天或正好等于 n 天的文件;
-mtime [+ | -]n:按照文件更改时间搜索,查找更改时间是在 +n 天之前、不到 -n 天或正好在 n 天之前的文件。
按照所有者和所属组搜索:
-uid 用户ID:按照用户 ID 查找所有者是指定 ID 的文件。
-gid 组ID:按照用户组 ID 查找所属组是指定 ID 的文件。
-user 用户名:按照用户名查找所有者是指定用户的文件。
-group 组名:按照组名查找所属组是指定用户组的文件。
-nouser:查找没有所有者的文件。
按照文件类型搜索:
-type d:查找目录。
-type f:查找普通文件。
-type l:查找软链接文件。
逻辑运算符。
-a:意思为“and逻辑与”。-a 代表逻辑与运算,-a 的两个条件都成立,find 搜索的结果才成立。
-o:意思为“or逻辑或”。-o 选项代表逻辑或运算,-o 的两个条件只要其中一个成立,find 命令就可以找到结果。
-not:意思为“not逻辑非”。-not 是逻辑非,也就是取反。
【例 1】目录下查找文件名为 test 的文件
- [root@bogon demo]# find / -name test
- /lib/alsa/init/test
- /root/demo/test
- /root/demo/test/test
- /root/linux/test1/test
- /usr/lib64/python2.6/test
- /usr/bin/test