I am using
find to locate and delete backup files but wish to exclude certain directories from the search. The backup filenames could terminate in
The Minimal Working Example (MWE) code with only three directories to exclude is:
#! /bin/bash find . -type d \( -path "./.*" -o -path "./Music" -o -path "./Documents" \) -prune -o -type f \( -name "*.bck" -o -name "*.bak" -o -name "*~" -o -name "*.backup" \) -print0 | xargs -0 --no-run-if-empty trash-put
\( -path "dir1" -o -path "dir2" ... -o -path "dirN" \) -prune seems a little clunky, especially if there are around ten directories to exclude, although I have shown only three in the MWE.
Is there a more elegant way using either an input file, with the list of excluded directories, or an array- or list-like construct, that could be pressed into service?
I am sorry for not being more explicit when I wrote my original question.
trash-put is a utility that moves the files to the
Trashcan instead of deleting them .