Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I like the command-t script in vim editor that is able to intelligently and incrementally search for files. Is there some similar program that is able to search from shell? It would be great if it would support tagging mode, so that I could search based on tags. e.g.

$ fnd -t pictures,cars


gives me the list of possibilities and I can type tab and shift-tab and select the picture I want
p1.jpg
p2.jpg
p3.jpg
p4.jpg
$ fnd -t pictures,cars,porsche
p2.jpg
p3.jpg
one tag added will narrow the results

I will summarize it : The application should support effective searching. Effective means it supports advanced features as as incremental, search in content, tagging or other clever technique.

thank you for suggestions

share|improve this question
1  
Your description is a bit vague. What do you mean by incremental: that you can start acting on results before it's searched the whole space? Where do the tags come from, who enters them, where are they stored? What kinds of searches do you want to do: on text contents, or also (apparently) other things (archive contents, contents of word processor documents, text in different encodings, …)? How large is the search space (the disk cache will speed up refined searches for a medium-sized space, but you'll need fancier stuff for a large space)? Do you want to build an index beforehand? –  Gilles Jun 15 '11 at 8:30
    
incremental means that the search results change while typing. You can see example in the question where adding one tag narrowed the searched results. I'm not going to implementation in this question but storage is certainly important in that application. The application could offer one or more kinds of intelligent searching but should be incremental search and locate desired files easily (so we don't need to type all path). Search space could be whole partition (similarly as command-t which is really clever). –  xralf Jun 15 '11 at 8:59

4 Answers 4

You can use find for searching files. The -exec option allows you to search for tags (for example find dir -exec getfattr -nuser.tagfoo ';'). You need filesystem suport for getfattr/setfattr. You can also search based on content with grep -r foo dir or find dir -exec grep -q foo ';' -exec getfattr ... if you want to combine it with "tags".

share|improve this answer

This might not be quite the simple solution you're looking for, but zsh might do what you're looking for. It's a full-on replacement for bash, but features better tab-completion and a lot of other nifty features.

share|improve this answer
    
I'd like to try it. Please write me the commands and switches to use. –  xralf Jun 21 '11 at 7:03
    
ZSH does a lot of nifty things and you can configure it to do more but at the end of the day it's a shell, not a find tool or search client. I don't think this is relevant to the question, although the question is pretty vague about what is supposed to happen. –  Caleb Jun 21 '11 at 19:22

If you are using a Mac, then you have what you need with:

 mdfind(1)

 locate(1)

Would also do what you seem to want, although not as well.

share|improve this answer

There's a search tool in Mac named "spotlight".I love this tool and now look what I found.This application, Mutate, is a great thing (mostly because you can customize it by bash scripting :D ).

This will be helpful: http://www.noobslab.com/2014/12/mutate-is-alternative-to-macs-new.html

How to install in Ubuntu/Linux Mint Via PPA:

  • sudo add-apt-repository ppa:noobslab/apps

  • sudo apt-get update

  • sudo apt-get install mutate

to Edit, Add, Remove scripts:

  • cd .config/Mutate/scripts
share|improve this answer

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.