IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【文本位置查找】Linux中查找文件位置的命令,find、locate、whereis、which和type -> 正文阅读

[系统运维]【文本位置查找】Linux中查找文件位置的命令,find、locate、whereis、which和type

在这里插入图片描述

本文介绍在Linux下,查找文件位置的五种命令:findlocatewhereiswhichtype

??01?find


1.1?find简介

  • Linux find命令非常适合搜索文件和目录,也可以将搜索结果传递给其他进程做进一步处理。
  • Linux find 命令功能强大且灵活。它可以使用大量不同的条件来搜索文件和目录,而不仅仅是文件名。例如,它可以搜索空文件、可执行文件或特定用户拥有的文件。它可以按文件的访问或修改时间查找和列出文件,您可以使用正则表达式模式,默认情况下它是递归的,并适合与命名管道(FIFO缓冲区)等协同工作。
  • 如果我们能够获取find命令的输出并自动将其用作其他命令的输入,则可以对为我们查找发现发现的文档和目录进行一些操作。这种方法可以利用这种能力,把事情提升到另一个层次。
  • 将一个命令的输出通过管道传输到另一个命令的原理是Unix衍生操作系统的核心特征。让一个进程做一件事并做好,并期望它的输出可以是另一个进程的输入——甚至是一个尚未成文的进程,这样的设计原则通常被描述为“Unix哲学” Unix philosophy。然而,一些核心实用进程并不接受管道输入,如mkdir
  • 为了解决这个缺点,xargs命令可用于打包管道输入并将其提供给其他命令,就好像它们是该命令的命令行参数一样。这实现了与直接管道几乎相同的效果。尽管是“几乎相同”,但不是“完全相同”,因为shell扩展和文件名通配可能存在意想不到的差异。
  • 我们可以将findxargs结合使用,以便对找到的文件执行某些操作。这是一种冗长的方法,但是我们可以将查找到的文件输入到xargs中 ,然后通过管道传输到tar中,以创建这些文件的存档。我们将在包含许多帮助系统PAGE文件的目录中运行此命令。
find ./ -name "*.page" -type f -print0 | xargs -0 tar -cvzf page_files.tar.gz

详情请参考博文:How to Use the find Command in Linux (howtogeek.com)


1.2?find使用方法

Linux find命令用来在指定目录下查找文件。当不加任何参数时,find命令仅会在当前目录下查找子目录与文件,并将所有查找到的子目录和文件进行显示。

  • find是最常见且强大的文件查找命令,可以用于查找任何目标文件。使用格式为:
find "指定目录" "指定条件" "指定行为"
  • 指定目录:会搜索该目录,以及其所有的子目录;默认情况是当前目录。
  • 指定条件:对搜索文件的特征描述。
  • 指定行为:对搜索结果进行特定的处理。

实例:

  1. 搜索当前目录以及子目录,显示所有文件名后缀为.txx的文件。
find . -name "*.txt"
  1. 搜索当前目录以及子目录,显示所有文件名后缀为.txx的文件的详细信息。
find . -name "*.txt" -ls
  1. 搜索系统,显示所有文件名后缀为.txx的文件。
find . -name "*.txt"
  1. 搜索当前目录以及子目录,显示过去5分钟内更新过的普通文件 (排除特殊文件和目录)。
find . -type f -mmin 5
  1. 搜索当前目录以及子目录,显示过去7天更新过的文件。
find . -ctime 7

在这里插入图片描述


??02?locate


  • locate命令相当于find -name,但是因为locate是搜索一个数据库/var/lib/locatedb,所以locate命令的执行速度会更快。该数据库包含本地所有文件的信息,并且每天自动更新一次,会导致查找不到最新更新过的文件。为了解决这个问题,可以先使用updatedb命令更新数据库,再使用locate进行查找。
  1. 搜索/home目录及子目录下,所有以a开头的文件。
locate  /home/a
  1. 搜索/home目录及子目录下,所有以a开头的文件,但忽略大小写。
locate  -i /home/a

在这里插入图片描述


??03?whereis


  • whereis命令仅用于程序名的搜索,只能搜索二进制文件(-b)、man说明文件(-m)和源代码文件(-s)。若没有参数,但显示所有的查找结果。

查找bash的位置:

whereis bash

输出信息为:

bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz

注意:以上输出信息从左至右分别为查询的程序名、bash路径、bashman手册页路径

在这里插入图片描述


??04?which


  • which命令是在$PATH变量指定的路径中,搜索当前系统命令的位置,并返回第一个搜索到的结果。因此,使用which命令的目的是:确认当前系统是否存在某个命令,和该命令的实际位置。

实例:

which mkdir

输出信息为:

/usr/bin/mkdir

此为bash可执行程序的绝对路径。

在这里插入图片描述


??05?type


  • type命令可用于区分某个命令是shell自带的,还是由shell外部的二进制文件提供的。当时外边命令时,可以使用-p参数,来显示该命令的路径。

实例1:

type cd
  • 会显示cdshell的自带命令 cd is a shell builtin

实例2:

type grep
  • 会显示grep是一个外部命令,并显示该命令的路径。

在这里插入图片描述


参考博客

How to Use the find Command in Linux (howtogeek.com)

Linux find 命令 | 菜鸟教程 (runoob.com)

Linux whereis命令 | 菜鸟教程 (runoob.com)

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-08 19:16:18  更:2022-06-08 19:16:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 0:28:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码