3种方法来在Linux电脑上查找文件

 

若是你不太了解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程序。
相关文章
相关标签/搜索