GNU/Linux >> Znalost Linux >  >> Linux

Odstraňte soubory, které začínají na, ale neobsahují

Ano, s find můžete použít více než jeden vzor :

$ find -name 'master-*' \! -name 'master-2018*' -print0 -prune |
     xargs -0 echo rm -fr

(odeberte echo pokud jste spokojeni s chodem na sucho)

Měli byste přidat -maxdepth 1 predikát těsně za find pokud chcete pouze ro odstranit soubory z aktuálního adresáře, tj. master-1991 ale ne subdir/master-1991 .


V bash:

shopt -s extglob
echo rm master-!(2018*)

Odstraňte echo pokud to vypadá správně.

Výše uvedené používá rozšířené globbingové zařízení bash k přiřazení souborů začínajících master- ale kteří nemají 2018 bezprostředně následující, pak následuje cokoliv (* ).


Linux
  1. Najít a odstranit velké soubory, které jsou otevřené, ale byly smazány?

  2. Jak najít všechny soubory, které neobsahují textový řetězec?

  3. Jak najít soubory pomocí příkazu fd v Linuxu

  1. Najít soubory a rozbalit je (s mezerami)

  2. Jak odstranit složky s určitým názvem

  3. Vypsat všechny soubory grafických obrázků s find?

  1. Jak najít soubory s určitou podcestou?

  2. Rekurzivně vyhledejte soubory s konkrétní příponou

  3. Jak najít soubory, které neobsahují daný vyhledávací řetězec