ptkSearcher - Little file Searcher for the Linux Desktop

Years ago I wrote a small file finder in Bash and gtk-server. Here..
Why ? Linux has its own file database called (m)locate.
At this time i found the file indexer of KDE or Gnome, which were totally CPU heavy and unnecessary.
Last year i changed after 17 years from Debian unstable 32bit to Xubuntu 16.04 LTS 64bit.
Unfortunately, the gtk-server no longer ran.
Some additional Libs could not be compiled under 64bit.
Since I had no desire to continue to pursue, I wrote the Searcher shorthand new with Perl/Tk.


Search for files and directories in a Linux/Unix-like directory structure.
Quick search using the (m)locate database,
particular search with find (Perl-Modul) in the current state,
search for strings in files,
search manual pages (manpages) with editor capabilities.
Opens the file found with the default application (xdg-open) or with an application of your choice.
Search History for the last 100 search strings and clicked files.
Multiple instances allowed.
Depends on Perl >= 5.14 and Perl/Tk, recommended Perl 5.24.

Perlcritic -3 inspected.

Freeware, Open-source.


ptkSearcher → Preferences: Choose font/fontsize and external applications
ptkSearcher → Increase font size ++
ptkSearcher → Decrease font size --
ptkSearcher → Quit: On exit all settings and history entries are saved to ~/.ptksearcherrc
Info → Search History:
The last 100 search strings and clicked files are stored.
A double-click on a search string in the history window sets the string into the input search slot
of the raised search page e.g. Locate / Find / Man Page.
A double-click on a file line opens the selected file with the default application via xdg-open.
Info → Help: Help text
Info → About: ptkSearcher
Ignore case → on/off
Reverse order → normal/reverse order. e.g. if output limit 200 and the result output is 800,
you will see the first 200 lines in normal order and the last 200 lines in reverse order.
Output limit → Set the max. number of output lines. 0 = no limit.
Search with (M)LOCATE:
locate - find files by name using a database. This is the quickest method to find files or directories.
updatedb - creates or updates the database via cron daily. For working just in time it isnt actual.
For more infos read the man pages of updatedb and cron/crontab.
Directory to search: Select myHome(~/) or All(/) or /var or /usr ...
Usage with pattern:
'*' ⇒ '.*' → everything or nothing: *image → image, oldimage, newestimage ...
'?' ⇒ '.' → exact 1 unknown character
'[' , ']' → alternative characters: pic[AB].png → picA.png, picB.png, picAB.png, picBA.png
image → exact match
image*, *image, im*ge*.png, *.jpg, image?, [iI]mage*, charlie[123]* ...
A double-click on a result line opens the selected file with the default application via xdg-open.
On videos only, the video starts with ffplay or avplay if present. Otherwise with the default application.
A right-click on a result line opens a popup menu with the applications of your choice to open the file.
Search with FIND:
Real searching on HDD for files or directories.
Directories to search: Choose myHome(~/) and /etc and /var and /usr ...
Select finding FILES or DIRECTORIES.
MaxDepth indicates the max. Directory depth to search, default: 3. 0 = infinity
File Size → e.g. < <= >= > K, M, G : >10K , <200M , exact '1000' (Bytes)
Name Length → e.g. < > : >7 , <40 , exact '25' (Characters) , myfile.png = 10 Characters
Grep Files → Find text, word, phrase in files, case ignored.
ASCII files only → ascii/text files (on) or ascii/binary files (off), select by mimetypes and heuristics.
Is also working on e.g. *.pdf, *.doc ...
Pattern → same as above
Search for more than one string is possible by comma separated values.
e.g. *.gz,*.zip ... *.gif,*.jpg,*.png,*.xcf ... without spaces
A double-click on a result line opens the selected file with the default application via xdg-open.
On videos only, the video starts with ffplay or avplay if present. Otherwise with the default application.
A right-click on a result line opens a popup menu with the applications of your choice to open the file.
Search Manual Pages:
A simple editor window for the system's manual pager (man).
Search for reference manuals of commands e.g. whatis, who, cp, gimp, perl ...
All 'man' flags supported: e.g.
6 gnome-mines → manual page 6 for gnome-mines
3 iconv → manual page 3 for iconv

1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)

-L en whois → -L = locale, en = english, whois = command you are looking for
-k ... → regex
Right-click in the editor window opens a popup menu for more. Like copy, find, wrap ...


The Easy Debian Package Way for all Debian based distributions like Debian, Ubuntu, Mint etc.

Download the file.
Unpack the .zip file.
Open a console and change to the install_ptksearcher directory. → cd install_ptksearcher ↵
Read the instructions of the 00_Readme_First.txt file and follow them. → less 00* ↵

On Debian/Linux become root with su
and type:

bash ./01install_deb_ptksearcher.bash

or on Ubuntu/Mint etc.

sudo bash ./01install_deb_ptksearcher.bash

Important: Type 'bash' and not 'sh', because 'sh' is 'dash' on Debian. Dash is a subset of Bash.

That's it.
Now, start the Searcher with 'ptksearcher' or under the menu section Utility.

The Hard Way for all other linux/unix distributions.

Check if mlocate present. → which mlocate ↵
If the answer: /usr/bin/mlocate then it looks good.
Type → ls -l /usr/bin/*locate ↵
If the answer:
/usr/bin/locate -> /etc/alternatives/locate
Then it looks perfect.
'mlocate' is the newer version of 'locate', so have a look that 'mlocate' is the program and 'locate' a link.
If 'mlocate' and 'locate' a program, you have 2 databases for file indexing.
This make no sense, uninstall 'locate' completely and reinstall 'mlocate'.
If 'locate' the only one on your distribution, install it if it is not there.
Install the following Distribution Packages in this Order if it is not there.
Install ttf-bitstream-vera   ... this is the default font for ptksearcher
Install ttf-ancient-fonts   ... for all Symbol Blocks in the Unicode Standard
Install libmodern-perl-perl
Install libutf8-all-perl
Install libipc-system-simple-perl
Install libautodie-perl
Install libfile-homedir-perl
Install libfile-mimeinfo-perl
Install libfile-which-perl
Install libfile-find-rule-perl
Install perl-tk
Install libtk-gbarr-perl

The Harder Way if one or more of the Perl Packages not present in your distribution.

Open a console, become root with su or type with sudo and install via CPAN.
Install with cpan -i or cpanm if there or via the Perl shell like this:
perl -MCPAN -e shell ↵
Inside the perl shell type .. for the missing Perl Modules.
install Modern::Perl ↵
install utf8::all ↵
install IPC::System::Simple ↵
install autodie ↵
install Tk ↵
install Tk::NumEntry ↵
install File::Find::Rule ↵
install File::HomeDir ↵
install File::Copy ↵
install File::MimeInfo ↵
install File::Which ↵
quit ↵

Copy the downloaded file after unpacking 'ptksearcher' to /usr/local/bin. → cp ptksearcher /usr/local/bin ↵
and → chmod 0755 /usr/local/bin/ptksearcher ↵
Or copy to /usr/local/sbin or /usr/bin
If you want icons for the desktop or menu, copy ptksearcher.xpm, ptksearcher.png to /usr/share/pixmaps if there.
→ cp ptksearcher.xpm /usr/share/pixmaps && cp ptksearcher.png /usr/share/pixmaps ↵
If you want a menu entry, copy ptksearcher.desktop to /usr/share/applications if there.
→ cp ptksearcher.desktop /usr/share/applications ↵
That's it.
Now, start the Searcher with 'ptksearcher'


Installer for Debian/Ubuntu/Mint -- MD5 Checksum: 8e630775386531065a07b9ca0c5c70c8 ..

ptkSearcher for manual installation -- MD5 Checksum: 2f79b87439a24516d396aac43b38ad91 ..




since 5. Jan. 2017
Sende eine Nachricht / send an email
modified: 30. Oct. 2017