欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux目录和文件——查询目录和文件的命令

程序员文章站 2022-07-05 10:47:03
Linux目录和文件——查询目录和文件的命令 摘要:本文主要学习了在Linux系统中是如何查询目录和文件的。 which命令 which命令是根据PATH环境变量设置的路径,去搜索执行文件。 基本语法 选项说明 使用举例 type命令 type命令用来显示指定命令的类型: 1)alias:别名。 2 ......

linux目录和文件——查询目录和文件的命令

摘要:本文主要学习了在linux系统中是如何查询目录和文件的。

which命令

which命令是根据path环境变量设置的路径,去搜索执行文件。

基本语法

1 [root@localhost ~]# which [选项] 命令名称

选项说明

1 -a:列出所有的可以找到的同名执行文件。

使用举例

1 [root@localhost ~]# which ls
2 alias ls='ls --color=auto'
3     /usr/bin/ls
4 [root@localhost ~]#

type命令

type命令用来显示指定命令的类型:

1)alias:别名。

2)keyword:关键字,shell保留字。

3)function:函数,shell函数。

4)builtin:内建(内嵌)命令,shell内建命令。

5)file:文件,磁盘文件,外部命令。

6)unfound:未找到。

基本语法

1 [root@localhost ~]# type [选项] 命令名称

选项说明

1 -t:显示“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“别名”或者“内嵌指令”。
2 -p:如果给出的指令为外部指令,则显示其绝对路径。
3 -a:在环境变量“path”指定的路径中,显示给定指令的信息,包括命令别名。

使用举例

 1 [root@localhost ~]# type ls
 2 ls 是 `ls --color=auto' 的别名
 3 [root@localhost ~]# type -t ls
 4 alias
 5 [root@localhost ~]# type -p ls
 6 [root@localhost ~]# type -a ls
 7 ls 是 `ls --color=auto' 的别名
 8 ls 是 /usr/bin/ls
 9 [root@localhost ~]# type cd
10 cd 是 shell 内嵌
11 [root@localhost ~]# type -t cd
12 builtin
13 [root@localhost ~]# type -p cd
14 [root@localhost ~]# type -a cd
15 cd 是 shell 内嵌
16 cd 是 /usr/bin/cd
17 [root@localhost ~]# type useradd
18 useradd 是 /usr/sbin/useradd
19 [root@localhost ~]# type -t useradd
20 file
21 [root@localhost ~]# type -p useradd
22 /usr/sbin/useradd
23 [root@localhost ~]# type -a useradd
24 useradd 是 /usr/sbin/useradd
25 [root@localhost ~]# 

whereis命令

whereis命令用于在特定目录中查找符合条件的文件。

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。

基本语法

1 whereis [选项] 文件或目录

选项说明

1 -b:只搜索二进制文件。
2 -m:只搜索man手册。
3 -s:只搜索源代码。
4 -u:搜索不是b、m、s指定目录的其他特殊目录。
5 -l:列出会去查询的有效查找目录。

使用举例

1 [root@localhost ~]# whereis ls
2 ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
3 [root@localhost ~]# 

find命令

find命令可以在目录结构中搜索文件,并执行指定的操作。

基本语法

1 [root@localhost ~]# find 目录 [选项] 查询后的动作

选项说明

 1 -amin n:查找n分钟以前被访问过的所有文件。
 2 -atime n:查找n天以前被访问过的所有文件。
 3 -cmin n:查找n分钟以前文件状态被修改过的所有文件。
 4 -ctime n:查找n天以前文件状态被修改过的所有文件。
 5 -mmin n:查找n分钟以前文件内容被修改过的所有文件。
 6 -mtime n:查找n天以前文件内容被修改过的所有文件。
 7 -newer file:file为一个存在的文件,列出比file还要新的文件。
 8 -uid n:n为数字,这个数字是使用者的帐号id,亦即uid。
 9 -gid n:n为数字,这个数字是群组名称的id。
10 -user name:查找name为用户名的文件。
11 -group name:查找name为群组名的文件。
12 -nouser:查找没有所有人的文件。
13 -nogroup:查找没有所属组的文件。
14 -maxdepth n:n为数字,查找深度距离当前目录最多n个子目录深度 。
15 -mindepth n:n为数字,查找深度距离当前目录至少n个子目录深度。
16 -name filename:查找文件名为filename的文件,区分大小写。*表示通配任意个字符,?表示通配单个字符。
17 -iname filename:查找文件名为filename的文件,不区分大小写。*表示通配任意个字符,?表示通配单个字符。
18 -type type:查找文件的类型为type的文件。类型主要有:一般文件(f),装置文件(b、c),目录(d),软链接(l),socket(s),及fifo(p)等属性。
19 -empty:查找路径下为空的文件或文件夹。
20 -size [+-]size:查找比size还要大(+)或小(-)的文件。size的规格有:k、m、g。
21 -perm [-/]mode:查找文件权限为mode或大于mode(-)或包含任一mode(/)的文件,这个mode为类似chmod的属性值。
22 -a:两个条件必须同时为真。
23 -o:两个条件只要任意一个为真。
24 -not:对条件进行取反。

执行动作

1 -exec command {} \;:command为其他命令,-exec后面可再接额外的命令来处理查询到的结果。
2 -ok command {} \;:-ok相对于-exec而言更安全一点,会让用户确定所要执行的操作。
3 -print:将结果打印到屏幕上。

使用举例

1 [root@localhost ~]# find . -name test
2 ./test
3 [root@localhost ~]#

locate命令

locate命令用于查找符合条件的文档,该命令会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录,比find快很多。因为该命令是从数据库内查找,并不是在磁盘上直接查找。

locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统会每天更新一次,也可以手工升级数据库。

安装命令

1 [root@localhost ~]# yum install -y mlocate

更新命令

1 [root@localhost ~]# updatedb

基本语法

1 [root@localhost ~]# locate [选项] 关键字

选项说明

1 -i:忽略大小写的差异。
2 -c:不输出文件名,仅计算找到的文件数量。
3 -l n:n为数字,表示仅输出n行。
4 -s:输出locate所使用的文件或目录的相关属性。
5 -r:使用正则表达式进行搜索。

使用举例

1 [root@localhost ~]# locate hello.zip
2 /home/hello.zip
3 [root@localhost ~]#