A'nın kullanımının *
neredeyse kaçınılmaz olduğu birçok durum vardır - örneğin rm -rf *
binlerce alt klasör ve dosya içeren bir klasörde.
Ancak, yalnızca bir veya iki dosya veya klasörü rm
komutun dışında bırakmak isterseniz ne olur ? Yolumu araştırdım ve buradafind . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;
belirtildiği gibi oldukça karmaşık çözümler buldum .
Bunu daha kolay bir şekilde yapma imkanı var mı - bu sapma olmadan find
? Örneğin rm -rf --exclude='one' --exclude='two' --exclude='three' *
rsync gibi rm -rf -e 'one','two','three' *
mi yoksa sadece ?
Hatta belki bir genel olasılık şeyleri dışlamak için *
(böylece diğer komutlar gibi cp
, mv
... kendi uygulamak zorunda değilsiniz)? Gibi bir şey *{'one','two','three'}
mi?
mv -t /tmp one two three && rm -rf * && mv -t . /tmp/one /tmp/two /tmp/three
, ama bir şeyi açıkça dışlama imkanı veren bir çözümü tercih ederim *
. Kesinlikle dosyaları taşımak veya başka bir hedefe kopyalamak bir seçenek olmayacaktır durumlar olacaktır.
find
ile kullanmak istiyorum--delete
(rm
her dosya için yürütmek gerek yok . Bu gereksiz yükü).