如果你不太了解Linux命令,那么在Linux系统里查找文件是比较困难的。只要使用多种不同的终端命令,可以很快地找到文件。Linux命令比其它操作系统的搜索功能更加强大,掌握这些命令就能你完全控制这些文件。

1
根据文件名搜索文件。find命令是最基础和常用的搜索命令。它可以在当前路径和任意子目录中搜索文件。[1]

find -iname "文件名"
  • 用-iname来代替-name,忽略文件名的大小写。-name命令区分大小写。
2
设置搜索条件,从根目录开始搜索。如果想要搜索整个系统,可以添加/来修改命令。这样,find命令会搜索所有路径,从根目录开始搜索文件。

find / -iname "文件名"
  • 用具体的目录路径来代替/,可以搜索特定路径里的文件,如/home/pat。
  • 你可以用.来代替/,这样就能在当前路径和子目录下强制搜索文件。
3
使用通配符.* 搜索任何匹配搜索条件的文件。 如果你不知道文件全名,或想要查找带有特定扩展名的所有文件,可以使用通配符*。

find /home/pat -iname "*.conf"
  • 这样会在“Pat”用户文件夹(所有子目录)中找到所有.conf文件。
  • 你也可以用它来查找所有匹配部分文件名的文件。例如,如果你有很多wikiHow相关的文档,可以输入"*wiki*"来找到它们。
4
让你的搜索结果更方便管理。如果获得很多搜索结果,就很难细查筛选文件。使用" | "字符,将搜索结果发送到“less”筛选程序。这样你就可以更简单地浏览和筛选搜索结果。

find /home/pat -iname "*.conf" | less
5

找到特定类型的结果。你可以使用修饰符来返回特定类型的结果。你可以使用f搜索常规文件,用d搜索路径,用l搜索符号链接文件,用c搜索字符设备,用b屏蔽设备。

find / -type f -iname "文件名"

6
根据大小过滤搜索结果。
如果很多文件的名称相似,但是你知道目标文件的大小,可以使用文件大小进行过滤。
find / -size +50M -iname "文件名"
  • 上述命令会返回大于等于50MB的文件。你可以使用+或-来搜索更大或更小的文件。如果没有加+或-字符,就会只搜索特定大小的文件。
  • 你可以使用字节(c)、千字节(k)、兆字节(M)、千兆字节(G)或512字节块(b)来进行筛选。记住,这些文件大小命令是区分大小写的。
7
使用布尔操作符来整合搜索过滤。使用-and、-or和-not操作符来整合不同类型的搜索条件。[2]

find /travelphotos -type f -size +200k -not -iname "*2015*"
  • 这个命令会在“travelphotos”目录里查找大于200KB,文件名里不包含“2015”的所有文件。
8
根据用户或权限搜索文件。如果你想要查找特定用户的文件,或是带有特定权限的文件,可以根据此来缩窄搜索条件。

find / -user pat -iname "文件名"
find / -group users -iname "文件名"
find / -perm 777 -iname "文件名"
  • 以上命令会搜索特定用户、群组或权限的文件。你可以忽略文件名,返回所有匹配条件的文件。如:find / -perm 777会返回所有带有777权限的文件(无限制条件)。[3]
9
将执行命令整合到搜索文件中。你可以将find命令和其它命令整合到一起,这样在返回搜索结果时,执行命令。用-exec来隔开find命令和第二个命令,然后结尾用{} \;字符。

find . -type f -perm 777 -exec chmod 755 {} \;
  • 这样会在当前路径和所有子目录里搜索带有777权限的文件。找到文件后,chmod命令会将权限更改为755。

1
安装.locate 功能。 由于locate命令能够读取数据库文件的结构,所以,它通常比find命令速度更快。但是,不是所有版本的Linux系统都安装了locate功能,你可能需要输入以下命令来安装它:

  • 输入sudo apt-get update,按下回车键。
  • 你可以在“Debian”和乌班图系统里安装它:输入sudo apt-get install mlocate,按下回车键。如果已经安装了locate,那么会看到mlocate is already the newest version的信息。
  • 在“Arch Linux”系统里,使用“pacman”安装包管理器:pacman -Syu mlocate
  • 在“Gentoo”系统里,使用“emerge”:emerge mlocate
2
更新.locate 数据库。 除非建立并更新数据库,否则locate命令无法找到任何内容。一般来说,系统每天会自动更新数据库,但是你也可以手动更新它。如果你想要立刻使用locate命令,那就需要手动更新。[4]

  • 输入sudo updatedb,按下回车键。
3
使用.locate 命令进行简单的搜索。 locate命令的运行速度很快,但是没有find命令那么多选项。你可以用它来执行简单的文件搜索,基本的搜索方式与find命令相同。

locate -i "*.jpg"
  • 这个命令会搜索整个系统,找到带.jpg后缀的文件。通配符*与find命令里的通配符功能一致。
  • 跟find命令类似,-i会忽略搜索条件里的大小写。
4
限制搜索条件。如果返回过多搜索结果,处理不过来,你可以使用-n选项来限制搜索。在选项里输入数字,就会限制出现的搜索结果数量。

locate -n 20 -i "*.jpg"
  • 只显示匹配搜索条件的前20个结果。
  • 你也可以使用" | "来将结果发送到less程序。

3种方法来在Linux电脑上查找文件的更多相关文章

  1. 在Linux系统上查找文件

    Find命令 格式:find <指定搜索范围> <指定条件> <指定动作> 其中搜索范围是一个目录名,指定条件包括文件名.文件属性(修改时间所属用户等).所在位置特 ...

  2. Git学习笔记——从一台电脑上传文件到Github上

    目标:从一台电脑上传文件到Github上 前提: 1.这里假定已在Github上创建了仓库,建立了仓库 2.已在这台电脑上安装了Git客户端 实验环境: 1.Windows 10 64位,已安装了Gi ...

  3. Linux系统上查找已安装软件的路径

    在Linux系统上查找已安装软件路径的命令,以查找pcre的安装路径为例: [root@localhost doc]# rpm -ql pcre /lib64/libpcre.so. /lib64/l ...

  4. Linux系统下查找文件的方法

    Linux系统下查找文件的方法 作者:Vashon 时间:20150419 方法一.在当前目录里查找所有名为以 java 开头的文件: find ./ -name "java*" ...

  5. 如何使用sftp下载Linux服务器上的文件到本地

    下载Linux服务器上的文件到本地 Linux服务器上的操作 sftp xxxxx@jumper.xxxx.com 使用put命令进行文件上传,put app.log 本地操作 sftp xxxxx@ ...

  6. Git 命令将电脑上的文件上传到 Github

    1.在电脑上安装 Windows 版 Git下载地址:https://git-scm.com/downloads2.使用 Git GUI 生成 SSH Key 3.将 SSH Key 添加到 Gith ...

  7. Linux按照时间查找文件

    linux按照时间查找文件 需要用到一个根据最后修改时间来处理的脚本. 前面有个有关find的基本用法,根据文件大小,类型什么的,这个是关于时间的.  linux 文件的三种时间(以 find 为例) ...

  8. MySQL重置root密码的几种方法(windows+Linux)

    重置root密码的方法: windows系统下:1.停止mysql服务:2.新建文件init-root.txt,写上如下内容: update mysql.user set password = pas ...

  9. linux上查找文件存放地点和文件中查找字符串方法

    一.查找文件存放地点 1.locate 语法:locate <filename> locate命令实际是"find -name"的另一种写法,但是查找方式跟find不同 ...

随机推荐

  1. 末学者笔记--rpm和yum软件管理(Linux)

    一.rpm简介 这是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件. rpm:RPM is Redhat Packa ...

  2. es6 let 和 const

    function test(){ let a = 1 for (let i =0;i<3;i++){ console.log(i)         //1,2 } console.log(i)  ...

  3. 解决MongoDB登录的WARNING

    解决MongoDB登录的WARNING 1.安装完成运行mongodb警告内容如下: 2019-01-17T15:41:50.578+0800 I CONTROL [initandlisten] ** ...

  4. 浅析微信小程序技术架构(原创)

    周末万里虎抽空体验了下微信小程序的DEMO,对小程序的开发有了一个基础的了解与认识,今天就来和大家分享一下我对小程序的看法. 从官方DEMO来看,小程序在技术架构上非常清晰易懂.JS负责业务逻辑的实现 ...

  5. centos7 安装Mysql8.0笔记

    下载MySQL yum源 wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm 安装yum源 yum lo ...

  6. asp:GridView控件使用FindControl方法获取控件的问题

    一.使用带cells的指定列 e.Item.Cells[1].Controls[1]只指定第二列的第二个控件 二.不使用带cells的指定类e.Item.FindControl("ID&qu ...

  7. Taro父子组件通信

    父组件 testEvent = () =>{ console.log('abc123') } <Test test={1231323} onTestEvent={this.testEven ...

  8. 《连载 | 物联网框架ServerSuperIO教程》- 16.集成OPC Server,及使用步骤。附:3.3 发布与版本更新说明。

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  9. Scrapy 扩展中间件: 同步/异步提交批量 item 到 MySQL

    0.参考 https://doc.scrapy.org/en/latest/topics/item-pipeline.html?highlight=mongo#write-items-to-mongo ...

  10. Continuity of arithmetic operations

    Arithmetic operations taught in elementary schools are continuous in the high level topological poin ...