如果你不太了解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. Jenkins编辑或替换All view

    为什么我不能编辑“All”view? 这是因为它的类型是“All”而不是“List”,并且“All”类型是不可编辑的.你只能有一个“All”类型的view. 如果你想编辑这个View,你将不得不创建一 ...

  2. python设计模式---行为型之观察者模式

    比较常用咯~~ from django.test import TestCase from abc import ABCMeta, abstractmethod # 行为型设计模式---观察者模式 c ...

  3. 网站发布出现“未能找到路径“path\bin\roslyn\csc.exe”....“和拒绝访问的解决办法

    最近在2017上新建了一个MVC项目,发布是出现了各种奇怪的问题,其中一个错误是: 未能找到路径“path\bin\roslyn\csc.exe”.... 经过网上搜寻资料发现罪魁祸首就是NUGET里 ...

  4. sql server按月份,按项目号展开表格

    原始数据: 01 RD21 6495.411402 RD21 87.43604 RD21 101.718405 RD21 1.538401 RD25 7803.303709 RD25 106.8375 ...

  5. Netty5服务端源码解析

    Netty5源码解析 今天让我来总结下netty5的服务端代码. 服务端(ServerBootstrap) 示例代码如下: import io.netty.bootstrap.ServerBootst ...

  6. SOUI开发应用展示2

    神速加速器 一款网游加速器,下载:http://js.ispeed.cn/downloadPage.html 一款上位机界面,行业软件,不提供下载 : 光速搜索:自己搜索官网,有广告. ABC看图: ...

  7. 洛谷评测机BUG(应该是)

    此问题由洛谷p1746引出(之前出过类似问题没在意) 传送门 以下是两个差不多的程序,(只有main函数中的输入不同,第一个程序迷之WA,第二个程序AC) #include <bits/stdc ...

  8. TensorFlow之多核GPU的并行运算

    tensorflow多GPU并行计算 TensorFlow可以利用GPU加速深度学习模型的训练过程,在这里介绍一下利用多个GPU或者机器时,TensorFlow是如何进行多GPU并行计算的. 首先,T ...

  9. anjular分页组件tm-pagination的使用

    原组件地址:https://github.com/miaoyaoyao/AngularJs-UI (1)直接从git上clone下来的demo无法正常显示,后来重新到在线的demo上拷贝了templa ...

  10. centOS7.3安装配置NFS服务

    在安装和运行NFS服务中,发现了一个需要警惕的地方. 运行2个centOS7.3系统.由于前面一篇已经写了使用xshell进行远程,所以,直接远程进行操作: chen-01做为服务端,chen-02做 ...