-
-
Save peterdemartini/4c918635208943e7a042ff5ffa789fc1 to your computer and use it in GitHub Desktop.
find `pwd` -type d -maxdepth 3 -name 'node_modules' | xargs -n 1 tmutil addexclusion |
Trying to use fd
to replace find
fd -t d -d 5 -a --no-ignore --prune node_modules | xargs -I {} tmutil addexclusion {}
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:
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_excludeItem
which 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
@poma found the way which is LEAST obtrusive on all system resources. I extended this script to parse everything in the .gitignore. I am a NOOB in bash scripting and I'm sure it can be made simpler and I'd love to see that. Here it goes:
I have also added handling of .nosync for iCloud Drive