Znalezienie pliku w systemie Linux może być trudne, jeśli nie wiesz jak. Najlepszym sposobem na znalezienie plików jest użycie kilku różnych poleceń terminala. Opanowanie tych poleceń może zapewnić pełną kontrolę nad plikami i są one znacznie bardziej wydajne niż proste funkcje wyszukiwania w innych systemach operacyjnych.
Kroki
Metoda 1 z 3: Korzystanie z funkcji „zlokalizuj”
Krok 1. Zainstaluj
Znajdź funkcjonalność.
Polecenie locate działa na ogół znacznie szybciej niż find, ponieważ działa na bazie danych struktury plików. Nie wszystkie dystrybucje Linuksa mają zainstalowaną funkcję lokalizowania, więc wprowadź następujące polecenia, aby spróbować ją zainstalować:
- Wpisz sudo apt-get update i naciśnij ↵ Enter.
- Możesz go zainstalować w Debianie i Ubuntu w następujący sposób: Wpisz sudo apt-get install mlocate i naciśnij ↵ Enter. Jeśli locate jest już zainstalowany, zobaczysz komunikat mlocate to już najnowsza wersja.
- W Arch Linux użyj menedżera pakietów pacman: pacman -S mlocate
- W przypadku Gentoo użyj emerge: emerge mlocate
Krok 2. Zaktualizuj swój
Znajdź Baza danych.
Polecenie locate nie będzie w stanie niczego znaleźć, dopóki jego baza danych nie zostanie zbudowana i zaktualizowana. Dzieje się to automatycznie codziennie, ale możesz też ręcznie aktualizować. Musisz to zrobić, jeśli chcesz od razu zacząć korzystać z lokalizacji.
Wpisz sudo updatedb i naciśnij ↵ Enter
Krok 3. Użyj
Znajdź do wykonywania prostych wyszukiwań.
Polecenie find jest szybkie, ale nie ma tylu opcji, co polecenie find. Podstawowe wyszukiwanie plików można przeprowadzić w taki sam sposób, jak polecenie find.
zlokalizuj -i "*.jpg"
- To polecenie przeszuka cały system w poszukiwaniu plików z rozszerzeniem.jpg. Symbol wieloznaczny * działa tak samo, jak w przypadku polecenia find.
- Podobnie jak polecenie find, opcja -i ignoruje wielkość liter w zapytaniu.
Krok 4. Ogranicz wyniki wyszukiwania
Jeśli twoje wyszukiwania zwracają zbyt wiele wyników do obsłużenia, możesz je zmniejszyć, używając opcji -n, a następnie liczby wyników, które chcesz wyświetlić.
zlokalizuj -n 20 -i "*.jpg"
- Zostanie wyświetlonych tylko pierwszych 20 wyników pasujących do zapytania.
- Możesz także użyć | pipe, aby wysłać wyniki do less w celu łatwego przewijania.
Metoda 2 z 3: Korzystanie z funkcji „znajdź”
Krok 1. Wyszukaj plik według jego nazwy
Jest to najbardziej podstawowe wyszukiwanie, jakie można przeprowadzić za pomocą polecenia find. Poniższe polecenie wyszuka zapytanie w bieżącym katalogu i dowolnych podkatalogach.
find -iname "nazwa pliku"
Użycie -iname zamiast -name ignoruje wielkość liter w zapytaniu. W komendzie -name rozróżniana jest wielkość liter
Krok 2. Ustaw wyszukiwanie, aby rozpoczynało się w katalogu głównym
Jeśli chcesz przeszukać cały system, możesz dodać do zapytania modyfikator /. Dzięki temu find ma przeszukać wszystkie katalogi, zaczynając od katalogu głównego.
znajdź / -iname "nazwa pliku"
- Możesz rozpocząć wyszukiwanie w określonym katalogu, zastępując / ścieżką katalogu, taką jak /home/pat.
- Możesz użyć. zamiast /, aby wymusić wyszukiwanie tylko w bieżącym katalogu i podkatalogach.
Krok 3. Użyj znaku wieloznacznego
* aby wyszukać wszystko, co pasuje do części zapytania.
Symbol wieloznaczny * może być przydatny do znalezienia czegoś, jeśli nie znasz pełnej nazwy lub chcesz znaleźć wszystko z określonym rozszerzeniem.
znajdź /home/pat -iname "*.conf"
- Spowoduje to zwrócenie wszystkich plików.conf w folderze użytkownika Pat (i podkatalogach).
- Możesz go również użyć, aby znaleźć wszystko, co pasuje do części nazwy pliku. Na przykład, jeśli masz dużo dokumentów związanych z wikiHow, możesz znaleźć je wszystkie, wpisując "*wiki*".
Krok 4. Ułatw sobie zarządzanie wynikami wyszukiwania
Jeśli otrzymujesz dużo wyników wyszukiwania, przesiewanie ich może być trudne. Użyj | znak i wyślij wyniki wyszukiwania do programu filtrującego "mniej". Dzięki temu możesz znacznie łatwiej przewijać i filtrować wyniki.
znajdź /home/pat -iname "*.conf" | mniej
Krok 5. Znajdź określone typy wyników
Modyfikatorów można używać do zwracania tylko określonych typów wyników. Możesz wyszukiwać zwykłe pliki (f), katalogi (d), dowiązania symboliczne (l), urządzenia znakowe (c) i urządzenia blokowe (b), używając odpowiedniego modyfikatora.
find / -type f -iname "nazwa pliku"
Krok 6. Filtruj wyniki wyszukiwania według rozmiaru
Jeśli masz wiele plików o podobnych nazwach, ale znasz rozmiar, którego szukasz, możesz filtrować nasze wyniki według rozmiaru.
find / -size +50M -iname "nazwa pliku"
- Spowoduje to zwrócenie wyników o wielkości 50 megabajtów lub większych. Możesz użyć + lub -, aby wyszukać większe lub mniejsze rozmiary. Pominięcie + lub - spowoduje wyszukanie plików o dokładnie określonym rozmiarze.
- Możesz filtrować według bajtów (c), kilobajtów (k), megabajtów (M), gigabajtów (G) lub bloków 512-bajtowych (b). Zauważ, że we fladze rozmiaru rozróżniana jest wielkość liter.
Krok 7. Użyj operatorów logicznych do łączenia filtrów wyszukiwania
Aby połączyć różne typy wyszukiwań w jedno, można użyć operatorów -i, -lub i -not.
find /travelphotos -type f -size +200k -not -iname "*2015*"
Polecenie znajdzie pliki w katalogu „travelphotos”, które mają rozmiar większy niż 200 kilobajtów, ale w nazwie pliku nie ma „2015”
Krok 8. Wyszukaj pliki według właściciela lub uprawnień
Jeśli próbujesz znaleźć określony plik należący do użytkownika lub pliki z określonymi uprawnieniami, możesz zawęzić wyszukiwanie.
find / -user pat -iname "nazwapliku" find / -group users -iname "nazwapliku" find / -perm 777 -iname "nazwapliku"
Powyższe przykłady przeszukają określonych użytkowników, grupy lub uprawnienia dla zapytania. Możesz także pominąć zapytanie o nazwę pliku, aby zwrócić wszystkie pliki pasujące do tego typu. Na przykład find / -perm 777 zwróci wszystkie pliki z uprawnieniami 777 (bez ograniczeń)
Krok 9. Połącz polecenia, aby wykonać akcje po znalezieniu plików
Polecenie find można połączyć z innymi poleceniami, aby można je było wykonać na plikach zwróconych przez zapytanie. Oddziel polecenie find i drugie polecenie flagą -exec, a następnie zakończ wiersz {};
odnaleźć. -type f -perm 777 -exec chmod 755 {};
Spowoduje to przeszukanie bieżącego katalogu (i wszystkich podkatalogów) w poszukiwaniu plików, które mają uprawnienia 777. Następnie użyje polecenia chmod, aby zmienić uprawnienia na 755
Metoda 3 z 3: Wyszukiwanie tekstu w plikach
Krok 1. Użyj
grep polecenie, aby wyszukać ciągi tekstu w plikach.
Jeśli szukasz pliku zawierającego określoną frazę lub ciąg znaków, możesz użyć polecenia grep. Podstawowe polecenie grep jest sformatowane w następujący sposób:
grep -r -i "zapytanie wyszukiwania" /ścieżka/do/katalogu/
- Opcja -r ustawia wyszukiwanie na "rekursywne", więc przeszuka bieżący katalog i wszystkie podkatalogi w poszukiwaniu dowolnego pliku zawierającego ciąg zapytania.
- -i wskazuje, że w zapytaniu nie jest rozróżniana wielkość liter. Jeśli chcesz wymusić w wyszukiwaniu zwracanie uwagi na wielkość liter, pomiń operator -i.
Krok 2. Wytnij dodatkowy tekst
Gdy przeprowadzasz wyszukiwanie grep jak powyżej, zobaczysz nazwę pliku wraz z tekstem z podświetlonym pasującym zapytaniem. Możesz ukryć pasujący tekst i po prostu wyświetlić nazwy plików i ścieżki, dołączając następujące elementy:
grep -r -i "zapytanie wyszukiwania" /ścieżka/do/katalogu/ | wyciąć -d: -f1
Krok 3. Ukryj komunikaty o błędach
Polecenie grep zwróci błąd, gdy spróbuje uzyskać dostęp do folderów bez odpowiednich uprawnień lub uruchomi się w pustych folderach. Możesz wysłać komunikaty o błędach do /dev/null, co ukryje je z danych wyjściowych.
grep -r -i "zapytanie wyszukiwania" /ścieżka/do/katalogu/ 2>/dev/null