不使用通配符查找具有精确名称的文件

不使用通配符查找具有精确名称的文件

我已经使用 Ubuntu 大约 2 周了,但仍然对简单的文件操作感到沮丧。

我想找到一个名为9.jpg。我尝试过的每个内部命令和第三方程序都给出了 99.jpg、999.jpg、“lovepotion number9.jpg”以及无数其他类似的图片。

如何搜索不带通配符的精确文件名?

这只是我最近的挫败感。我显然缺少了一些基本的东西。有什么好的教程吗?

答案1

如何搜索不带通配符的精确文件名?

要搜索不带通配符的精确文件,请使用find命令。

  1. Ctrl按+ Alt+打开终端T

  2. 输入命令并点击Enter

    find / -name 9.jpg
    

如果您只想在主文件夹中搜索,请使用 代替~/等等/。将其替换为/您要在其中搜索的目录名称。如果您只想在当前目录及其内的所有目录中搜索,请使用./代替/

答案2

locate /9.jpg

请注意/- 如果没有它,您只会找到以 结尾的每个文件9.jpg。但从技术上讲,它会在所有驱动器上搜索以它为子字符串的文件路径,其中包括9.jpg.png,因此这对于具有文件扩展名的文件更有效 - 名为 log using 的文件/log将向您显示以 结尾的每个文件/var/log/

答案3

nautilus(文件管理器)中的搜索功能在设计上仅限于简单的通配符选项。如果您需要更复杂的功能,您可以选择 GUI 或命令行。

GUI:通过软件中心或输入以下命令安装 gnome-search-tool 软件包

 sudo apt-get install gnome-search-tool

运行它(它被称为“搜索文件”)。将主条目留空,并添加一个名为“名称匹配正则表达式”的搜索选项。在新的文本字段中,输入^9.jpg^开头的匹配正则表达式中字符串的开头)。

在此处输入图片描述

至于命令行,该find实用程序将为您提供精确的答案:

 find . -name '9.jpg'

考虑这个:目录中的文件“999.jpg”和“9.jpg” t/

$ ls t
99.jpg  9.jpg
$ find . -name '9.jpg'
./t/9.jpg
$ find . -name '*9.jpg'
./t/99.jpg
./t/9.jpg
$

我希望这一点很清楚。

相关内容