I'd like to use tmutil
recursively to list all of the files currently excluded from Time Machine backups. I know that I can determine this for a single file with
tmutil isexcluded /path/to/file
but I can't seem to get this to run recursively. I have tried grepping for the excluded files and outputting to a file like this:
tmutil isexcluded * | grep -i excluded >> ~/Desktop/TM-excluded.txt
but this only outputs data for the top level of the current directory. Can I use find
or a similar command to feed every file/directory on the machine to tmutil isexcluded
and pull out a list of the excluded files? What is the best way to structure the command?
I'm aware that most of the exclusions can be found in
/System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist
and that some app-specific exclusions are searchable via
sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"
but I am looking for a way to compare the actual flags on the files to these lists.
This should do it:
This takes advantage of the fact that
tmutil
allows you to pass multiple filenames, so I use+
at the end of thefind
instead of;
then I don't have to execute a new process for every single file on your machine - which could be slow. Thegrep
looks for the fixed (F
) string[Excluded]
and thesed
removes the[Excluded]
and following 4 spaces.