立即按名称搜索文件

立即按名称搜索文件

Windows 下有一个智能软件“Everything”,它可以监听 NTFS 中的变化,并允许它立即按名称搜索文件 - 只需一秒钟甚至更短的时间。

Ubuntu 有这样的能力吗?

答案1

Ubuntu 也有很好的老locate从命令行。

location 读取由 updatedb(8) 准备的一个或多个数据库,并将与至少一个 PATTERN 匹配的文件名写入标准输出,每行一个。

updatedb

updatedb 创建或更新由locate(1)使用的数据库。如果数据库已经存在,则重用其数据以避免重新读取未更改的目录。updatedb通常由cron(8)每天运行以更新默认数据库。

例子...

locate *.txt

结果是

/boot/grub/gfxblacklist.txt
/discworld/.Trash-1000/files/Breaking Bad S04E10 Nl subs DutchReleaseTeam/DutchReleaseTeam NFO.txt
/discworld/.Trash-1000/files/Breaking Bad S04E10 Nl subs DutchReleaseTeam/Torrent downloaded from Demonoid.me.txt
/discworld/.Trash-1000/files/True Blood S04E12 HDTV.XviD (NL subs) DutchReleaseTeam/Dutch Release Team NFO Read Before Playing.txt
/discworld/.Trash-1000/files/True Blood S04E12 HDTV.XviD (NL subs) DutchReleaseTeam/Torrent_downloaded_from_Demonoid.me.txt
/etc/X11/rgb.txt

它所显示的内容会立即显示,您可以使用 进行搜索regex

答案2

没有,没有这样的工具。我知道的所有搜索工具都依赖于自己的数据库,不能使用内部文件系统的索引和日志数据,例如一切能。

话虽如此,我认为在正常情况下“Linux”工具已经足够了。locate能够在任何文件系统上索引文件(不像一切),而且速度也很快。如果你想查找个人文档或启动程序,那么像gnome-do或 这样的启动器软件kupfer更适合这项任务。

答案3

是的,我们有这样的实用程序。首先,Nautilus(文件浏览器)可让您快速搜索文件。对于您使用过的文件,您可以按 super+F 打开文件和文件夹镜头并输入文件名。还有文件索引器,如 Tracker(可能以后可以从文件和文件夹镜头访问)。

答案4

我不记得我从哪里偷了它,但尝试这个脚本:

    #!/bin/bash

t=$(mktemp)
locate "$1" | awk '{ printf "%4d\t\"%s\"\n",  NR, $0 }' > $t

[[ -s $t ]] || { echo "No results found"; exit; }

rows=$(wc -l "$t" | cut -d' ' -f1)

if [[ $rows == 1 ]]; then 
     file=$(sed 's/^.*\t"\(.*\)"$/\1/' $t)
    xdg-open "$file" &
else
    response=$(dialog --stdout --menu 'Choose a File:' 20 70 15 --file $t)
    if [[ -n "$response" ]]; then
        file=$(sed -n "/^\s*$response\t/{s/^.*\t\"\(.*\)\"$/\1/;p}" $t)
        if [[ -n $file ]]; then 
            echo "You chose $file"
            xdg-open "$file" &
        fi
    fi
fi

将此脚本复制并粘贴到文本文件中...

完成后使其可执行(sudo chmod +x),然后将其放入 /usr/local/bin 或 ~/bin

现在,如果你的脚本名称是搜索,你必须数字

搜索名称文件

:)

另一个有前途的工具:

http://www.lesbonscomptes.com/recoll/

相关内容