Jak wyszukiwać według zawartości w systemie Ubuntu


8

Chciałbym przeszukać cały serwer według zawartości. (plik tekstowy)

Kiedy próbuję grep -rl „tekst tutaj”, zawiesza się.

Jak byś to zrobił?

A jak długo to zwykle zajmuje?

Odpowiedzi:


17

Musisz podać plik podczas korzystania z greppolecenia. Za pomocą polecenia, którego szukasz, szukasz standardowego wejścia ...

Spróbować grep -r "test" directory.


7
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

Które można wytłumaczyć ludzkim mówieniem jako:

  1. odnaleźć
  2. zaczynając od /
  3. we wszystkich plikach o nazwie * .txt (cudzysłowy mają pomijać interpretację powłoki)
  4. z wynikowymi trafieniami wykonaj następujące czynności
  5. grep „test tutaj”
  6. w pliku {}
  7. end exec (\;) nie zawiera znaku końca instrukcji
  8. wydrukuj pasujące pliki
  9. przekierowuj komunikaty o błędach w zlewie (ponieważ możesz nie być rootem, w przeciwnym razie po prostu sudo).

mówi „znajdź: brakujący argument dla„ grep ””
webnat0

pracuje tutaj. jak zastąpiłeś „test tutaj”?
Alain Pannetier

1
@Daeyun: Jest tylko jeden ukośnik odwrotny.
Wstrzymano do odwołania.

1
@Dennis. Zależy od twojego języka ojczystego. W Japonii i Korei istnieje kilka zestawów znaków, w których odwrotny ukośnik jest również renderowany jako znak jena lub znak Wonga (0x5c). Proszę również spojrzeć na u + 20E5. W przeszłości w IIS istniało kilka exploitów, w których można było eksplorować cały dysk (gdzie IIS miał swój root) komputera, po prostu mieszając prawdziwe slash i false (inny równoważny unicode przekształcony w planie ascii) i przynajmniej jeden z wykorzystaniem odwróconej nakładki Solidus.
Alain Pannetier

0

zapomniałeś określić, jakie pliki chcesz przeszukać,
zaloguj się jako root

cd /
grep -rl "text here" *  > /tmp/match.txt

zajmie to bardzo dużo czasu, a wyniki można później zebrać, sprawdzając /tmp/match.txt


0

Następujące polecenie przeszukuje wszystkie pliki z rozszerzeniem .txt w bieżącym katalogu roboczym i wszystkich podkatalogach:

find . -type f -name '*.txt' -exec grep -Hn "text here" {} \;

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.