Skip to main content

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.