Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
    
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. –  WarriorIng64 Sep 25 '11 at 1:04
    
The Unity dash does a pretty good job itself. Also have you tried Synnapse? It's present in the Ubuntu Software Center. –  nitstorm Sep 25 '11 at 2:20
add comment

5 Answers

up vote 6 down vote accepted

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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).

share|improve this answer
    
You posted an answer to my question about "Nautilus"? +1. –  user32459 Nov 10 '11 at 15:30
add comment

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

share|improve this answer
add comment

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/

share|improve this answer
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 8: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 7 '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 7 '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 at 1:42
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.