One of the most important aps I have ever needed in Linux was ack. With it you can search the whole system or a folder for a specific text and it searches it in file and folder names and in them. Once I searched for the config file of one CMS and ack found the username and password for a second, god bless ack 🙂
But what is ack exactly?
Ack is designed as a replacement for 99% of the uses of grep.
Ack searches the named input FILEs (or standard input if no files are named, or the file name – is given) for lines containing a match to the given PATTERN . By default, ack prints the matching lines.
Ack can also list files that would be searched, without actually searching them, to let you take advantage of ack’s file-type filtering capabilities.
How to install ack?
# Install ack in Ubuntu \ Debian sudo apt-get install ack or sudo apt-get install ack-grep # Install ack in CentOS yum install epel-release yum install ack # Instal ack in opensuse zypper addrepo https://download.opensuse.org/repositories/openSUSE:Factory/standard/openSUSE:Factory.repo zypper refresh zypper install ack # Install ack in Fedora dnf install ack # Install ack in FreeBSD pkg install p5-ackCode language: PHP (php)
How to use ack?
If you use ack just typing ack “text” the command will work perfectly fine, but it can give you so much more power. Here are some examples:
01 – Basic usage
# Basic usage ack string-to-search # Example: cd /var/lib ack nameCode language: PHP (php)
02 – To find how many files contain the string you are searching use
# Find how many files contain string ack -f | wc -l # Output 2331Code language: PHP (php)
03 – To search for instances of our pattern surrounded by word boundaries use -w
# Surrounded by ack -w string-to-searchCode language: PHP (php)
04 – Use -c to get detailed information about the string you are searching for
# Detailed information about string ack -c string-tosearch # Output Doxyfile:8 Makefile:2 uncrustify.cfg:1 .travis.yml:2 neovim.rb:0 vim-license.txt:52Code language: CSS (css)
05 – Search for file type like css or python or txt
# Search for file type like css or python or txt ack string-to-search --cssCode language: PHP (php)
As you can see, the ack app is a very flexible tool for searching files, folders and inside them for a string. Even if you are just using it to find files within your Linux environment, most of the time, the increased power of ack will be useful.