Last active
September 23, 2025 06:35
-
Star
(139)
You must be signed in to star a gist -
Fork
(14)
You must be signed in to fork a gist
-
-
Save peterdemartini/4c918635208943e7a042ff5ffa789fc1 to your computer and use it in GitHub Desktop.
Exclude node_modules in timemachine
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| find `pwd` -type d -maxdepth 3 -name 'node_modules' | xargs -n 1 tmutil addexclusion |
Also, it appears that tmutil addexclusion supports multiple args:
$ mkdir -p {foo,bar}
$ ls
bar foo
$ xattr *
$
$ tmutil addexclusion ./foo ./bar
$ xattr *
bar: com.apple.metadata:com_apple_backup_excludeItem
foo: com.apple.metadata:com_apple_backup_excludeItemwhich means that many of the above commands could probably be done much more efficiently with find ... -exec tmutil addexclusion {} +, which collects arguments and runs the command once with collected arguments, as opposed to \; or piping to xargs / parallel, which will be separate invocations of tmutil.
EDIT: The equivalent for fd is --exec-batch
i was searching for a solution and this helped me a lot so im gonna drop a little here.
for fish and showing logs for what you're adding
find . -type d -maxdepth 3 -name 'node_modules' | while read -l line
echo "Excluding: $line"
tmutil addexclusion "$line"
end
and to check what you added
find . -type d -maxdepth 3 -name 'node_modules' | while read -l line
tmutil isexcluded "$line"
end
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This thread shows up fairly high in my searches for excluding python virtualenvs from timemachine.
Just wanted to point out for folks looking to dig a little deeper that there is some good info out there on the xattr that's being set on the item leading to exclusion, including faster ways to find these files (with
mdfind-- though this will skip files that are not indexed by spotlight) and likely some other opportunities to set the attribute directly with xattr if desired: