findYedek dosyaları bulmak ve silmek için kullanıyorum , ancak aramadan belirli dizinleri hariç tutmak istiyorum. Yedek dosya adları son bulabilir .bck, bak, ~, veya backup.
Hariç tutulacak yalnızca üç dizin içeren Minimum Çalışma Örneği (MWE) kodu:
#! /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
Sözdizimi \( -path "dir1" -o -path "dir2" ... -o -path "dirN" \) -prunebiraz aksak görünüyor, özellikle de hariç tutulacak yaklaşık on dizin varsa, ancak MWE'de sadece üç tane göstermiştim.
Hariç tutulan dizinlerin listesi olan bir girdi dosyasını veya hizmete basılabilen dizi veya liste benzeri bir yapıyı kullanmanın daha zarif bir yolu var mı?
Orijinal sorumu yazarken daha açık olmadığım için üzgünüm.
Not: trash-putdosyaları Trashcansilmek yerine taşımak için kullanılan bir yardımcı programdır [1].