Sto usando find
per 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" \) -prune
sembra 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 Trashcan
invece di eliminarli [1].