Android

Zlokalizuj polecenie w systemie Linux

Podstawy pracy w terminalu w systemie Linux

Podstawy pracy w terminalu w systemie Linux

Spisu treści:

Anonim

Jedną z najczęstszych operacji podczas pracy w systemie Linux jest wyszukiwanie plików i katalogów. W systemach Linux istnieje kilka poleceń, które pozwalają wyszukiwać pliki, przy czym najczęściej używane są find i locate .

Polecenie locate to najszybszy i najprostszy sposób wyszukiwania plików i katalogów według ich nazw.

W tym samouczku wyjaśnimy, jak używać polecenia locate .

Instalowanie locate (nie znaleziono polecenia locate)

W zależności od dystrybucji i tego, w jaki sposób system został zainicjowany, pakiet lokalizacyjny może, ale nie musi być wstępnie zainstalowany w systemie Linux.

Aby sprawdzić, czy narzędzie locate jest zainstalowane w systemie, otwórz terminal, wpisz polecenie locate i naciśnij klawisz Enter . Jeśli pakiet jest zainstalowany, system wyświetli locate: no pattern to search for specified , w przeciwnym razie zobaczysz coś takiego jak locate command not found .

Jeśli locate nie jest zainstalowana, możesz ją łatwo zainstalować za pomocą menedżera pakietów swojej dystrybucji.

Zainstaluj locate na Ubuntu i Debianie

sudo apt update sudo apt install mlocate

Zainstaluj locate na CentOS i Fedorze

sudo yum install mlocate

Jak locate pracę

Polecenie locate wyszukuje podany wzorzec poprzez plik bazy danych generowany przez polecenie updatedb . Znalezione wyniki są wyświetlane na ekranie, po jednym w wierszu.

Podczas instalacji pakietu mlocate tworzone jest zadanie cron, które uruchamia polecenie updatedb co 24 godziny. Dzięki temu baza danych jest regularnie aktualizowana. Aby uzyskać więcej informacji o zadaniu cron, sprawdź plik /etc/cron.daily/mlocate .

updatedb danych można ręcznie zaktualizować, uruchamiając komendę updatedb jako użytkownik root lub użytkownik z uprawnieniami sudo:

sudo updatedb

Proces aktualizacji zajmie trochę czasu, w zależności od liczby plików i katalogów oraz szybkości twojego systemu.

Pliki utworzone po aktualizacji bazy danych nie będą wyświetlane w wynikach wyszukiwania.

W porównaniu z bardziej zaawansowanym poleceniem find które przeszukuje system plików, locate działa znacznie szybciej, ale brakuje mu wielu funkcji i można wyszukiwać tylko według nazwy pliku.

Jak korzystać z polecenia locate

Składnia polecenia locate jest następująca:

locate PATTERN…

W najbardziej podstawowej formie, gdy jest używana bez żadnych opcji, polecenie locate wypisze bezwzględną ścieżkę wszystkich plików i katalogów, które pasują do wzorca wyszukiwania i do których użytkownik ma uprawnienia do odczytu.

Na przykład, aby wyszukać plik o nazwie .bashrc , wpisz:

locate.bashrc

Dane wyjściowe będą zawierać nazwy wszystkich plików zawierających ciąg .bashrc w swoich nazwach:

/etc/bash.bashrc /etc/skel/.bashrc /home/linuxize/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

Plik /root/.bashrc nie zostanie wyświetlony, ponieważ uruchomiliśmy polecenie jako zwykły użytkownik, który nie ma uprawnień dostępu do /root .

Jeśli lista wyników jest długa, dla lepszej czytelności możesz przesłać dane wyjściowe do polecenia less :

locate.bashrc | less

Polecenie locate akceptuje również wzorce zawierające znaki globowania, takie jak znak wieloznaczny * . Gdy wzorzec nie zawiera znaków globowania, polecenie wyszukuje *PATTERN* , dlatego w poprzednim przykładzie wszystkie pliki zawierające wzorzec wyszukiwania w ich nazwach były wyświetlane.

Symbol wieloznaczny jest symbolem używanym do przedstawienia zera, jednego lub więcej znaków. Na przykład, aby wyszukać wszystkie pliki .md w systemie, którego byś użył:

locate *.md

Aby ograniczyć wyniki wyszukiwania, użyj opcji -n , a następnie liczby wyników, które chcesz wyświetlić. Na przykład następujące polecenie wyszuka wszystkie pliki .py i wyświetli tylko 10 wyników:

locate -n 10 *.py

Domyślnie locate wykonuje locate rozróżnianiem wielkości liter. Opcja -i ( --ignore-case ) tels locate aby zignorować wielkość liter i uruchomić wyszukiwanie bez rozróżniania wielkości liter.

locate -i readme.md

/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md

Aby wyświetlić liczbę wszystkich pasujących wpisów, użyj opcji -c ( --count ). Następujące polecenie zwróci liczbę wszystkich plików zawierających w nazwach .bashrc :

locate -c.bashrc

6

Domyślnie locate nie sprawdza, czy znalezione pliki nadal istnieją w systemie plików. Jeśli plik został usunięty po ostatniej aktualizacji bazy danych, jeśli plik pasuje do wzorca wyszukiwania, zostanie uwzględniony w wynikach wyszukiwania.

Aby wyświetlić tylko nazwy plików, które istnieją w momencie locate należy uruchomić opcję -e ( --existing ). Na przykład następujące zwróci tylko istniejące pliki .json :

locate -e *.json

locate --regex -i "(.mp4|\.avi)"

Wniosek

Polecenie locate przeszukuje system plików w poszukiwaniu plików i katalogów, których nazwa odpowiada podanemu wzorowi. Składnia polecenia jest łatwa do zapamiętania, a wyniki są wyświetlane niemal natychmiast.

Aby uzyskać więcej informacji o wszystkich dostępnych opcjach polecenia locate wpisz man locate w twoim terminalu.

zlokalizuj terminal