Where apps hide your files
Every .pkg you install, including Mac App Store apps, leaves a receipt in a system folder Finder hides. You can list them, see which files a package installed, and learn why you should leave them alone.
/private/var/db/receipts/
/Library/Receipts/InstallHistory.plist
Every installer package you install leaves a small receipt in /private/var/db/receipts. Each one is a pair of files named after the package identifier: a .plist with the metadata (version, install time, install location) and a .bom, a "bill of materials" listing every file the package put on your Mac. On the Mac used for this guide the folder held 242 files, which is 121 receipts. /var/db/receipts is the same folder, since /var links to /private/var.
Apple's own add-on packages, such as the Command Line Tools, keep their receipts in a third folder, /Library/Apple/System/Library/Receipts. It held another 113 pairs on the guide Mac.
InstallHistory.plist is the running record of installations and software updates, one file of about 577 KB on the guide Mac.
To open the receipts folder, use Go > Go to Folder (or ⇧⌘G) in Finder and paste /private/var/db/receipts. From Terminal:
open /private/var/db/receipts
ls /private/var/db/receipts | head
Both files are binary (the .plist is a binary property list), so the supported way to read them is pkgutil, which ships with macOS. These commands only read:
| Command | What it does |
|---|---|
pkgutil --pkgs | Lists every installed package identifier. |
pkgutil --pkgs='.*adobe.*' | Lists identifiers that match a pattern. The pattern has to match the whole identifier, so --pkgs=adobe on its own finds nothing. |
pkgutil --pkg-info <id> | Shows the version, install location and install time for one package. |
pkgutil --files <id> | Lists every file that package installed. |
pkgutil --file-info <path> | Tells you which package installed a given file. |
pkgutil --export-plist <id> | Prints all the receipt data as a plist. |
If you would rather not write patterns, pkgutil --pkgs | grep -i adobe does the same job.
pkgutil --pkg-info prints the package id, the version, volume: /, a location such as Applications, and the install time as a Unix timestamp. Paths from --files are relative to that volume and location, so a line such as Example.app/Contents means /Applications/Example.app/Contents.
On the guide Mac pkgutil --pkgs printed 234 identifiers: the 121 in /private/var/db/receipts plus the 113 Apple packages in /Library/Apple/System/Library/Receipts. The command reads both, so trust it for the full picture.
Receipts come from anything installed through the macOS installer: a .pkg you double-clicked, a Homebrew cask that wraps a package, Apple's own add-ons, and Mac App Store apps. On the guide Mac, App Store apps had receipts too, for example com.apple.pkg.Pages11 for Pages and the bundle identifier for third-party App Store apps. Apps you dragged out of a disk image into Applications leave none. To check one app, run pkgutil --file-info /Applications/<App>.app: a package-installed app shows a pkgid line, and a dragged-in app shows only its volume and path.
/var/log/install.log that records what the installer did and when. It is the place to look when an install failed. It was about 21 MB on the guide Mac and readable by every user there. Open it in the Console app or with less /var/log/install.log.Dragging a package-installed app to the Trash can leave files outside /Applications: helpers in /Library/PrivilegedHelperTools, launch daemons in /Library/LaunchDaemons, support folders in /Library/Application Support. The receipt knows exactly what it put down. Find the id with pkgutil --pkgs | grep -i zoom (or the vendor's name), then list its files with pkgutil --files <id>. Read the list before removing anything, because some entries are folders shared with other software.
Leave them. Most are small, though big packages leave big bills of materials: the folder on the guide Mac totalled 161 MB (du -sh /private/var/db/receipts), and the largest single file was a 40 MB .bom from Xcode. That is not worth reclaiming. Removing a .plist or .bom by hand does not remove the software, and it leaves the package database inconsistent. pkgutil --forget <id> exists to discard one package's receipt data, and its manual page says it does not touch the installed files. It needs administrator rights (sudo), and the usual reason to use it is a stale receipt that confuses a reinstall.
Receipts do not store the installer itself. The .pkg file you ran is wherever you downloaded it, usually Downloads, and can go once the install is done. Hunting for those is covered in the related post on old installers.
The receipts folders are inside /private and /Library/Apple, which Finder searches leave out, and the files carry identifier names such as com.vendor.product.pkg.plist instead of the app's name. Searching for the app name finds nothing when the identifier does not contain it.
Everywhere lists file names in system folders such as /private/var/db, so typing part of an identifier, such as adobe or microsoft, shows the matching .plist and .bom pairs, and ⌘↵ reveals one in Finder. A receipt from an install you ran a minute ago may only appear after Everywhere's next scan. It matches file names only, not what a package installed, so use pkgutil --files for that.
In /private/var/db/receipts, as a .plist and a .bom file per package; Apple's add-on packages use /Library/Apple/System/Library/Receipts. The install history is /Library/Receipts/InstallHistory.plist.
Run pkgutil --pkgs | grep -i <name> to find the package identifier, then pkgutil --files <identifier> to list every file it installed. The paths are relative to the package's install location.
Leave them. Deleting a receipt does not uninstall the software and leaves the package database inconsistent. pkgutil --forget is the supported way to discard one, and it does not remove installed files.
Yes. On the Mac used for this guide, App Store apps had receipts in /private/var/db/receipts like any other package. Apps dragged out of a disk image are the ones that leave none.
Everywhere keeps track of every file on your Mac — including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Version 2.20.3 · macOS 13+ · 4.7 MB · notarised