Linux apt-file command
On Linux operating systems that use the APT (Advanced Packaging Tool) package management system, the apt-file command searches available packages for a specific file or files. The packages do not need to be installed to perform the search.
Description
The apt-file tool can list, and search for, individual files in the software packages used by APT. It's similar to using dpkg -L, but apt-file can search all available packages, not just the ones already installed. It accomplishes this by maintaining a local cache of package contents.
Installing apt-file
If apt-file is not already installed on your system, install it with the command:
sudo apt update && sudo apt install apt-file
After installation, you will receive a message about creating the apt-file cache:
The system-wide cache is empty. You may want to run 'apt-file update' as root to update the cache. You can also run 'apt-file update' as normal user to use a cache in the user's home directory.
You may also receive a notification window:
To update your user cache, click Run this action now, and then Close.
Or, in a terminal you can run:
sudo apt-file update && apt-file update
To update both the system-wide cache and your user cache.
When the update is complete, you are ready to use apt-file.
Syntax
apt-file [options] [action] [pattern]
apt-file -f [options] search [file...]
apt-file -D [options] search [debian-package-name.deb...]
Actions
find | The same as search. |
list | List all the files contained in packages whose names match pattern. One file per line is listed. |
purge | Clear "Contents-" files from the apt-file cache directory. If you receive any errors listing or searching, it's a good idea to perform a purge and then an update. |
search | Search for a file, whose name matches pattern, inside all available packages. Directory names are not searched, only file names. |
show | The same as list. |
update | Update apt-file's user cache of package contents from all configured APT sources. |
Options
-a arch, --architecture arch |
Different packages exist for different computer architectures. Use this option to specify which architecture's packages should be searched. |
-c cache-dir, --cache cache-dir |
Set the cache directory to cache-dir, instead of the default. If you run apt-file as a regular user, the default cache directory is $HOME/.cache/apt-file/. If you run apt-file as root, or if your user cache does not exist, the default cache directory is /var/cache/apt/apt-file/. |
-d mnt-point, --cdrom-mount mnt-point |
Use mnt-point as a CD-ROM (Compact Disc Read-Only Memory) mount point for reading package information. |
-D, --from-deb |
When this option is specified with the search action, apt-file reads the contents of a specific Debian package file, debian-package-file.deb, as the search pattern. This can be useful if you need to compare the contents of a broken package. This option implies -F. |
-f, --from-file |
Read the search pattern from the given file or files, one per line. To read patterns from standard input, use a single dash ("-") as the file name. |
-F, --fixed-string |
Interpret all search pattern characters literally. Use this to match pattern exactly. |
-i, --ignore-case |
Treat uppercase and lowercase letters the same when matching the search pattern. |
-l, --package-only |
Only display the package names, and omit file names. |
-N, --non-interactive |
If using one of the connection methods listed in the interactive value in the configuration file, skip all interactive prompts. This is useful when running apt-file in non-interactive modes such as a cron job. |
-s sources.list, --sources-list sources.list |
Use a custom list of APT sources. The default APT sources.list is often located at /etc/apt/sources.list. |
-v, --verbose |
Display additional information when running. |
-x, --regexp |
Treat the pattern as a perl regular expression. |
-y, --dummy |
Run in "dummy" mode — simulate all actions. For instance, apt-file -y update downloads nothing and creates no cache files, but still examines existing caches and returns some output. |
-h, --help |
Display a brief help message, summarizing actions and options. |
-- | The special option of two dashes ("--") indicates the end of options. This is necessary if your search pattern begins with a dash. |
Examples
apt-file purge
Purge the user cache. An apt-file update will be needed before a search can be performed on the user cache. If the user cache doesn't exist, the system-wide cache can be used for user searches.
apt-file update
Download information from sources, and create or update the user cache.
sudo apt-file purge
Purge the system-wide cache. sudo apt-file update is required before the systemwide cache can be used.
sudo apt-file update
Download information from sources, and create or update the system-wide cache.
apt-file search gimp
Show every file with "gimp" in its name, in every available APT package.
apt-file --package-only search gimp
Perform the same search as above, but list only the names of matching packages.
apt-file list gimp
List every file contained in every package with "gimp" in its name.
apt-file --package-only list gimp
Perform the same search as above, but list only the matching package names. Running this command provides output similar to apt-cache --names-only search gimp.
Relevant files and directories
/etc/apt/apt-file.conf | The default apt-file configuration file. |
/var/cache/apt/apt-file/ | The system-wide apt-file cache. |
~/.cache/apt-file/ | The user apt-file cache. |
/etc/apt/sources.list[.d] | The default APT sources list. |
Related commands
apt — A unified APT front end for the command line.
apt-cache — Get information about installed and available APT software packages.
apt-get — Download and install APT software packages.
apt-cache — Change the settings of individual APT software packages.
aptitude — An enhanced APT front end for the terminal.
dpkg — Install, remove, and maintain Debian software packages.