GNU/Linux >> Znalost Linux >  >> Linux

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

Chci najít všechny *.h ,*.cpp soubory ve složkách s definovanou maskou, jako je */trunk/src* . Mohu tedy najít samostatně *.h a *.cpp soubory:

find . -path "*/trunk/src/*.h"
find . -path "*/trunk/src/*.cpp" 

Jaký je nejlepší způsob, jak získat seznam souborů obou typů (*.h a *.cpp )?

PS Chtěl bych seznam přesunout do grep .

Přijatá odpověď:

Můžete použít -o pro „nebo“:

find . -path '*/trunk/src/*.h' -o -path '*/trunk/src/*.cpp'

což je stejné jako

find . -path '*/trunk/src/*' ( -name '*.h' -o -name '*.cpp' )

Pokud chcete spustit grep na těchto souborech:

find . ( -path '*/trunk/src/*.h' -o -path '*/trunk/src/*.cpp' ) -exec grep PATTERN {} +

nebo

find . -path '*/trunk/src/*' ( -name '*.h' -o -name '*.cpp' ) -exec grep PATTERN {} +

Linux
  1. Jak najít všechny řídké soubory v Linuxu

  2. Jak rekurzivně vypsat všechny soubory a adresáře

  3. Jak gzipovat všechny soubory ve všech podadresářích v bash

  1. Jak najít všechny soubory s konkrétním nadřazeným adresářem v linuxu?

  2. Seznam všech složek a podsložek

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

  1. Příkaz pro výpis všech souborů kromě . (tečka) a .. (tečka tečka)

  2. vypsat/najít všechny běžné soubory ve všech podadresářích s výjimkou binárních souborů

  3. Jak najít / vypsat všechny jedinečné soubory ve dvou adresářích?