Sto usando findper individuare ed eliminare i file di backup, ma desidero escludere determinate directory dalla ricerca. I nomi dei file di backup possono terminare in .bck, bak, ~o backup.
Il codice di esempio di lavoro minimo (MWE) con solo tre directory da escludere è:
#! /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
La sintassi \( -path "dir1" -o -path "dir2" ... -o -path "dirN" \) -prunesembra un po 'goffa, specialmente se ci sono circa dieci directory da escludere, anche se ne ho mostrate solo tre nel MWE.
Esiste un modo più elegante utilizzando un file di input, con l'elenco di directory escluse o un costrutto simile a un array o a una lista, che potrebbe essere messo in servizio?
Mi dispiace di non essere più esplicito quando ho scritto la mia domanda originale.
NB: trash-putè un'utilità che sposta i file in Trashcaninvece di eliminarli [1].