Jak usunąć kilka plików bez określonego przyrostka

0

Korzystam z Linuksa, używając Bash.

Muszę usunąć wszystkie pliki bez określonego przyrostka, na przykład „dist”. Wiem, że jest kilka sztuczek, aby to zrobić, zamiast usuwać wszystkie niechciane pliki jeden po drugim.

HaiYuan Zhang
źródło

Odpowiedzi:

4

Użyj poniższej listy, aby wyświetlić listę wszystkich plików, które zostaną usunięte (dla pewności):

find /path/to/directory -mindepth 1 ! -name "*dist"

Dodaj, -type fjeśli chcesz usunąć tylko zwykłe pliki, a nie dowiązania symboliczne lub katalogi.


Uruchom polecenie z dodatkowym -deleteargumentem na końcu, aby je usunąć.

Daniel Beck
źródło
@slhck Dzięki, nie wiem, o czym myślałem (prawdopodobnie niewiele)
Daniel Beck
2

Jeśli masz włączone rozszerzone globowanie, możesz spróbować:

rm !(*.dist)

Uwaga: jeśli masz katalogi bez rozszerzenia .dist, spróbuje je również usunąć, ale zakończy się niepowodzeniem.

Aby włączyć rozszerzone korzystanie z globowania: shopt -s extglob

dogbane
źródło