Excluding Paths from the Database
/etc/updatedb.conf controls which directories updatedb indexes. Excluding large or irrelevant directories makes updatedb faster and the database smaller.
Default Configuration
cat /etc/updatedb.conf
Typical defaults:
PRUNE_BIND_MOUNTS="yes"
PRUNEFS="9p afs anon_inodefs auto autofs binfmt_misc cgroupfs cifs coda configfs debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd ocfs2 proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs vboxsf"
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /var/lib/schroot"
PRUNENAMES=".git .hg .svn .bzr"
Adding Custom Exclusions
Edit /etc/updatedb.conf to exclude:
Large data directories:
PRUNEPATHS="/tmp /var/spool /media /data/backups /mnt/archive"
Development directories (massive node_modules etc.):
PRUNENAMES=".git .hg .svn node_modules __pycache__ .venv"
Specific filesystem types (NFS, CIFS):
PRUNEFS="nfs nfs4 cifs smbfs"
After editing, rebuild the database:
sudo updatedb
Excluding a Single Directory Without Editing Config
Use the --prunepath flag when running updatedb manually:
sudo updatedb --prunepaths "/tmp /home/user/large_dataset"
This only applies to that specific updatedb run — it does not persist to the config file.