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

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

which命令

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

基本语法

 which [选项] 命令名称

选项说明

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

使用举例

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

type命令

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

1)alias:别名。

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

3)function:函数,Shell函数。

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

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

6)unfound:未找到。

基本语法

 type [选项] 命令名称

选项说明

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

使用举例

 [root@localhost ~]# type ls
ls 是 `ls --color=auto' 的别名
[root@localhost ~]# type -t ls
alias
[root@localhost ~]# type -p ls
[root@localhost ~]# type -a ls
ls 是 `ls --color=auto' 的别名
ls 是 /usr/bin/ls
[root@localhost ~]# type cd
cd 是 shell 内嵌
[root@localhost ~]# type -t cd
builtin
[root@localhost ~]# type -p cd
[root@localhost ~]# type -a cd
cd 是 shell 内嵌
cd 是 /usr/bin/cd
[root@localhost ~]# type useradd
useradd 是 /usr/sbin/useradd
[root@localhost ~]# type -t useradd
file
[root@localhost ~]# type -p useradd
/usr/sbin/useradd
[root@localhost ~]# type -a useradd
useradd 是 /usr/sbin/useradd
[root@localhost ~]#

whereis命令

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

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

基本语法

 whereis [选项] 文件或目录

选项说明

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

使用举例

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

find命令

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

基本语法

 find 目录 [选项] 查询后的动作

选项说明

 -amin 分钟数:查找指定分钟数以前被访问过的所有文件。
-atime 天数:查找指定天数以前被访问过的所有文件。
-cmin 分钟数:查找指定分钟数以前文件状态被修改过的所有文件。
-ctime 天数:查找指定天数以前文件状态被修改过的所有文件。
-mmin 分钟数:查找指定分钟数以前文件内容被修改过的所有文件。
-mtime 天数:查找指定天数以前文件内容被修改过的所有文件。
-newer 文件名:列出比指定文件还要新的文件。
-uid 帐号ID:查找使用者是指定账号(即UID)的文件。
-gid 群组ID:查找群组是指定账号的文件。
-user 用户名:查找指定用户名的文件。
-group 群组名:查找指定群组名的文件。
-nouser:查找没有所有人的文件。
-nogroup:查找没有所属组的文件。
-maxdepth 深度:查找深度距离当前目录最多n个子目录深度 。
-mindepth 深度:查找深度距离当前目录至少n个子目录深度。
-name 文件名:查找指定文件名的文件,区分大小写。*表示通配任意个字符,?表示通配单个字符。
-iname 文件名:查找指定文件名的文件,不区分大小写。*表示通配任意个字符,?表示通配单个字符。
-type TYPE:查找文件的类型为TYPE的文件。类型主要有:一般文件(f),装置文件(b、c),目录(d),软链接(l),socket(s),及FIFO(p)等属性。
-empty:查找路径下为空的文件或文件夹。
-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件。SIZE的规格有:k、M、G。
-perm [-/]mode:查找文件权限为mode或大于mode(-)或包含任一mode(/)的文件,这个mode为类似chmod的属性值。
-a:两个条件必须同时为真。
-o:两个条件只要任意一个为真。
-not:对条件进行取反。

执行动作

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

使用举例

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

locate命令

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

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

安装命令

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

更新命令

 [root@localhost ~]# updatedb

基本语法

 locate [选项] 关键字

选项说明

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

使用举例

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

Linux目录和文件——查询目录和文件的命令的更多相关文章

  1. linux 查询目录下包含关键字的所有文件

    linux查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有 ...

  2. 【Linux命令】文件和目录操作命令

    本文主要用于常用命令的备忘,具体用法可用man查看,或查询其他资料. cd:改变工作目录 ls:列出目录的内容 mkdir:创建一个目录 cat:连接并显示指定的一个和多个文件的有关信息 cp:将给出 ...

  3. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  4. Linux磁盘管理之元数据、文件和目录、链接文件03

    一.存储设备分区简述 文件系统最终目的是把大量数据有组织的放入持久性的存储设备,如硬盘.硬盘存储能力具有持久性,不会因为断电而消失,存储量大,但读取速度慢.操作系统读取硬盘的时候,不会一个一个扇区读取 ...

  5. Linux文件与目录常用命令

    目录常用命令: cd:切换目录 pwd:显示当前目录 mkdir:新建一个目录 rmdir:删除一个空的目录 ## cd 命令几种常用方法: cd ~username 切换到用户username的主文 ...

  6. 关于LINUX文件与目录的问题说明

    文件权限一般可认为是0 123 456 789,一共十位: 0:表示该文件的文件类型.Windows里面是使用了一种文件关联的技术,通过扩展名来关联相应的应用程序,使得双击某个文件,就能达到调用相应的 ...

  7. linux入门教程(六) Linux文件与目录管理

    在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...

  8. linux系统学习笔记:文件、目录、用户

    本篇主要从stat函数开始,逐个说明stat结构的每一个成员,以此来了解文件的所有属性.同时将说明修改这个属性的各个函数. 一.文件 使用stat函数族得到和文件有关的信息结构. #include & ...

  9. 【改造Linux命令之rm - 删除文件或目录-】

    用途说明 rm命令是常用的命令,用来删除文件或目录(remove files or directories).它也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比 ...

随机推荐

  1. 搭建RTMP直播流服务器

    最近项目比较紧张,所以没什么时间写博客,正好这几天没什么事,赶紧记录下自己最近所学. 环境配置 服务器选用 服务器我选择的是小鸟云 ,原因很简单,他的个人用户有3个月免费使用时间. 服务器环境 Win ...

  2. c语言的全排列

    在c语言中实现全排列,对于刚接触c语言,还没学习算法的人来说,比较困难了吧.估计大佬也不会看这种基础的东西,全排列实现的办法很多,在c++中有一个专门的函数可以使用,但是在c中实现就有点困难了.如果你 ...

  3. [20190524]使用use_concat or_expand提示优化.txt

    [20190524]使用use_concat or_expand提示优化.txt --//上午看了链接https://connor-mcdonald.com/2019/05/22/being-gene ...

  4. RAW数据格式解析

    RAM数据格式解析 Raw格式是sensor的输出格式,是未经处理过的数据,表示sensor接受 到的各种光的强度. Raw数据在输出的时候是有一定的顺序的,一般为以下四种: 00: GR/BG 01 ...

  5. [PHP] PHP PDO与mysql的连接单例防止超时情况处理

    这个数据库类主要处理了单例模式下创建数据库对象时,如果有两次较长时间的间隔去执行sql操作,再次处理会出现连接失败的问题,利用一个cache数组存放pdo对象与时间戳,把两次执行之间的时间进行了比较, ...

  6. 线上可用django和gunicorn的dockerfile内容

    一,基础镜像 [xxx.com.cn/3rd_part/python.3.6.8:alpine3.9-mysqlclient1.4.2] FROM python:3.6.8-alpine3.7 MAI ...

  7. 用Python打印九九乘法表与金字塔(*)星号

    ''' 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 ...

  8. STP配置和选路规则

    1.用四台S3700交换机,2台PC机,组建网络拓扑 2.对mengyu-S1进行设置 (1)在交换机启用生成树(华为交换机默认启用MSTP),将交换机的STP模式更改为普通生成树STP: (2)配置 ...

  9. 扎西平措 201571030332 《面向对象程序设计(java)课程学习进度条》

    <2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序 阅读或编译让我 第一周 20/ ...

  10. mysql 高级查询三

    alter table my_class add id varchar(10);alter table my_class change id id varchar(10) first;alter ta ...