5

Under Windows there is a smart software "Everything" listening to changes in NTFS that allows it to search files by names instantly - for a second or less.

Is there such ability for Ubuntu?

  • This seems like something the Unity Dash / Zeitgeist should be able to do, although the Dash doesn't seem to have that level of performance yet from personal use. – Knowledge Cube Sep 25 '11 at 01:04
  • The Unity dash does a pretty good job itself. Also have you tried Synnapse? It's present in the Ubuntu Software Center. – Nitin Venkatesh Sep 25 '11 at 02:20
  • http://askubuntu.com/questions/714091/my-quest-to-find-the-fastest-search-app-for-linux – nazar2sfive Aug 20 '16 at 06:58

6 Answers6

6

Ubuntu also has good old locate from command line.

locate reads one or more databases prepared by updatedb(8) and writes file names matching at least one of the PATTERNs to standard output, one per line.

updatedb

updatedb creates or updates a database used by locate(1). If the database already exists, its data is reused to avoid rereading directories that have not changed. updatedb is usually run daily by cron(8) to update the default database.

Example...

locate *.txt

results in

/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

What it shows is shown instantly and you can search with a regex.

Rinzwind
  • 299,756
1

No, there isn't a tool like that. All search tools that I know of rely on their own databases and can't use the internal filesystem's index and journal data like Everything can.

That said, I think under normal circumstances "Linux" tools are more than sufficient. locate is able to index files on any filesystem (unlike Everything) and is very fast too. If you want to look for personal documents or launch programs, then launcher software like gnome-do or kupfer is more suitable for this task.

arrange
  • 14,959
0

Yes, we have utilities like that. First, Nautilus (the file browser) enables you to quickly search through your files. For files you have used, you can press super+F to open the Files and Folders lense and type a file name. There are also file indexers like Tracker (which probably be accessible from the Files and Folders lense some time).

0

in command line I use locate as described by Rinzwind (1+), if you need some GUI interface I like google desktop.

0

I was able to install the Windows version of Everything (1.3.4.686.x86) using PlayOnLinux 4.2.6 on Ubuntu 15.10. It functions perfectly and will index both the Ubuntu partition, NTFS partitions on the same drive and added NTFS drives. It works as fast and effortlessly as on Windows 7.

FredK
  • 1
0

I can't remember where I stole it but try this script:

    #!/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

Copy and paste this script in a text file...

Once done make it executable (sudo chmod +x) and then put it in in /usr/local/bin or ~/bin

now, if your script name is search you have to digit

search nomefile

:)

Another promising tool:

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

Pitto
  • 1,938
  • 1
    custom scripts like that should not be put in /usr/bin - that's for packages and the OS to use. Custom scripts should go in /usr/local/bin or ~/bin to meet the filesystem hierarchy standards. – ImaginaryRobots Dec 22 '11 at 17:22
  • Thanks a lot!

    I'm correcting the post now :)

    If I put it in /usr/local/bin every user will be able to use it or just my user?

    – Pitto Dec 27 '11 at 08:18
  • 1
    Putting it in /usr/local/bin is good if you want others to be able to run it, though you would also need to modify the permissions so they can read and execute it. – ImaginaryRobots Jan 07 '12 at 17:28
  • So you mean that if I log as mickey I get my own /usr/local/bin and if I log as donald it will be different, even being in the same location? – Pitto Jan 07 '12 at 19:42
  • @Pitto: nope. The file will still be there, but unless permissions are set properly, other users will not be able to read or execute it. – MestreLion Mar 28 '14 at 01:42