Att använda filsökning efter innehåll i Linux kan avsevärt minska tid och ansträngning när du söker efter specifik information i stora och komplexa filsystem.
Denna sökning kan vara särskilt användbar när du vill hitta filer som innehåller en viss sträng eller ett visst nyckelord, eller när du vill hitta alla filer som matchar ett visst mönster eller kriterium.
Att söka efter filer efter innehåll kan användas för olika uppgifter, t.ex. för att hitta:
Det allmänna syftet med att söka filer efter innehåll är att göra det enklare att arbeta med filsystemet och hitta den information du behöver i filsystemet.
Låt oss börja med verktyget ack. Det skapades 2005 som ett alternativ till grep och blev snabbt populärt bland utvecklare.
Det har flera fördelar jämfört med grep
, bland annat:
grep.
Detta innebär att du enkelt kan hitta filer som är dolda på ditt system.Exempel på hur du kan använda ack:
- Hitta alla filer i den aktuella mappen och dess undermappar som innehåller ordet
"test": ack "test"
- Samma sak, men exkluderar filer med filnamnstillägget
.bak: ack "test" --ignore-file=match:/.bak$/
- Hitta alla filer i den aktuella mappen som innehåller strängen "hello" och skriv ut de 2 första raderna i varje fil:
ack "hello" --heading --max-count=2
Det andra intressanta verktyget är ripgrep. Det liknar ack på många sätt, men använder en snabbare sökalgoritm, vilket gör det särskilt användbart för stora projekt.
Här är några exempel:
"test": rg "test"
.bak: rg "test" --glob "!*.bak"
rg "hello" --heading --max-columns=2
I slutet är det värt att nämna fzf. Det är inte bara en strängfinnare som ack och ripgrep. Fzf används som ett verktyg för att hitta filer, mappar och objekt i en lista. Annars fungerar det på samma sätt som ack / ripgrep, men med den extra möjligheten att filtrera resultaten live. Här är några exempel:
- Sök efter filer som börjar på bokstaven F på din dator:
locate F | fzf -m
- Avsluta den aktuella mappen och gå till den katalog jag vill ha:
cd **<TAB> | fzf
- Välj SVN-revision och kopiera numret till urklipp:
svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy
Förhoppningsvis kan dessa verktyg hjälpa dig att hitta de filer och strängar du behöver snabbt och effektivt. Oavsett vilket du väljer erbjuder de alla avancerade sökningar som kan påskynda ditt arbete avsevärt.