Saya menggunakan find
untuk mencari dan menghapus file cadangan tetapi ingin mengecualikan direktori tertentu dari pencarian. Nama file backup bisa berhenti dalam .bck
, bak
, ~
, atau backup
.
Kode Minimal Working Example (MWE) dengan hanya tiga direktori untuk dikecualikan adalah:
#! /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
Sintaksnya \( -path "dir1" -o -path "dir2" ... -o -path "dirN" \) -prune
tampak agak kikuk, terutama jika ada sekitar sepuluh direktori yang harus dikecualikan, meskipun saya telah menunjukkan hanya tiga di MWE.
Apakah ada cara yang lebih elegan menggunakan file input, dengan daftar direktori yang dikecualikan, atau susunan array atau daftar, yang dapat ditekan ke dalam layanan?
Saya minta maaf karena tidak lebih eksplisit ketika saya menulis pertanyaan asli saya.
NB: trash-put
adalah utilitas yang memindahkan file ke Trashcan
bukan menghapusnya [1].