GNU/Linux >> Znalost Linux >  >> Linux

Vyloučit seznam souborů z hledání

Nemyslím si, že find má takovou možnost, můžete vytvořit příkaz pomocí printf a váš seznam vyloučení:

find /dir -name "*.gz" $(printf "! -name %s " $(cat skip_files))

Což je stejné jako dělat:

find /dir -name "*.gz" ! -name first_skip ! -name second_skip .... etc

Alternativně můžete kanál z find do grep :

find /dir -name "*.gz" | grep -vFf skip_files

To je to, co obvykle dělám, abych odstranil některé soubory z výsledku (v tomto případě jsem hledal všechny textové soubory, ale nezajímalo mě množství zpráv valgrind memcheck, které tu a tam máme):

find . -type f -name '*.txt' ! -name '*mem*.txt'

Zdá se, že to funguje.


Linux
  1. Vyloučit adresář v hledání?

  2. Vyloučit všechny soubory podtržení teček z Rsync?

  3. Získat seznam všech souborů podle masky v terminálu?

  1. Je možné vyloučit některé soubory z Rm -rf?

  2. Jak najít všechny soubory končící na .rb s Linuxem?

  3. Iterujte seznam souborů s mezerami

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

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

  3. Vyloučit skryté soubory při hledání pomocí Unix/Linux find?