4 Great Tools to Find Files Quickly in Ubuntu

Wielu z Was koledzy użytkownicy Ubuntu będą zaznajomieni z narzędziem „Search for Files”, który pozwala szukać plików. Jak to jest z większością rzeczy w Linuksie, istnieją świetne narzędzia pulpitu, ale więcej mocy można znaleźć w Terminalu niż jakiekolwiek usprawnione narzędzie pulpitu może dopasować.

Dzisiaj, chciałbym przedstawić ci kilka narzędzi, które mogą zmienić obowiązek znalezienia plików w łatwy proces.

locate

Pierwsze narzędzie, które powinno stać się wygodne z jest również jednym z najprostszych. Program locate działa w sposób podobny do większości graficznych narzędzi wyszukiwania.

Używanie

Powiedzmy, że przeczytałeś o tym, jak zmodyfikować X, aby zapewnić lepszą wydajność wideo. Dokument, który czytasz, mówi, że należy zmodyfikować plik xorg.conf, ale dokument nie mówi, gdzie on się znajduje, a Ty nie wiesz, jak go znaleźć. Możesz użyć locate, aby szybko go znaleźć:

$ locate xorg.conf/etc/X11/xorg.conf/usr/share/man/man5/xorg.conf.5.gz/var/lib/x11/xorg.conf.md5sum/var/lib/x11/xorg.conf.roster

Jasne jest, że /etc/X11/xorg.conf jest plikiem, którego szukamy, ale co by było, gdyby zwrócono dziesiątki lub nawet setki wyników? Jak mógłbyś sobie z tym wszystkim poradzić? Jeśli wiesz co nieco o wyrażeniach regularnych (każdy użytkownik Linuksa naprawdę powinien nauczyć się podstaw), możesz łatwo użyć wyrażeń regularnych do wyszukiwania katalogów lub plików. Na przykład, możemy szukać dokładnego dopasowania dla xorg.conf za pomocą następującego polecenia:

$ locate -r '/xorg.conf$'/etc/X11/xorg.conf

Jeśli chcesz szukać plików bez rozróżniania wielkości liter, możesz użyć opcji -i. Na przykład:

$ locate -i 'monthly report'/home/chris/Documents/August Monthly Report.doc/home/chris/Documents/July Monthly Report.doc/home/chris/Downloads/latest monthly report.doc

Coś, co może cię zmylić, gdy po raz pierwszy zaczniesz używać locate, to fakt, że nie tylko zwraca ono dopasowania, ale jeśli dopasowanie jest katalogiem, wylicza również wszystkie katalogi i pliki w tym katalogu. Na przykład:

$ locate Desktop/home/chris/Desktop/home/chris/Desktop/Head Shot.jpg/home/chris/Desktop/Skype.lnk/home/chris/Desktop/Steam.lnk...

To polecenie zwraca ponad tysiąc wpisów w moim systemie. Aby zredukować wyniki do listy wpisów pasujących do wyszukiwanego terminu bez wszystkich zawartych plików i katalogów, użyj opcji -b:

$ locate -b Desktop/home/chris/Desktop/home/chris/bin/recordSoundAndDesktop.sh/opt/HipChat4/lib/QtQuick/Controls/Styles/Desktop/usr/include/qt4/QtGui/QDesktopServices/usr/include/qt4/QtGui/QDesktopWidget/usr/lib/libreoffice/program/wizards/common/Desktop.py/usr/lib/libreoffice/share/gallery/computers/Computer-Desktop.png/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.py/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.pyc/usr/lib/python3/dist-packages/xdg/DesktopEntry.py/usr/lib/python3/dist-packages/xdg/__pycache__/DesktopEntry.cpython-35.pyc/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Styles/Desktop/usr/share/kde4/apps/kio_desktop/DesktopLinks/usr/share/man/man3/File::DesktopEntry.3pm.gz/usr/share/perl5/File/DesktopEntry.pm/usr/share/sounds/KDE-Window-All-Desktops-Not.ogg/usr/share/sounds/KDE-Window-All-Desktops.ogg

Wciąż jest sporo dopasowań, ale nie musimy już sortować wszystkich dodatkowych wyników, aby znaleźć to, czego szukamy.

Important Note

Polecenie locate do działania opiera się na bazie danych slocate. Ta baza danych buforuje nazwy katalogów i plików systemu plików i pozwala poleceniu locate działać w ciągu kilku chwil, zamiast zajmować długie okresy czasu na przeszukiwanie całego systemu plików.

Ta zdolność nie przychodzi bez kosztów chociaż. Domyślnie, twój system będzie uruchamiał polecenie aktualizacji tej bazy danych raz dziennie o 6:25 rano. To polecenie zaktualizuje bazę danych o wszelkie zmiany dokonane w systemie plików od czasu ostatniej aktualizacji.

Jeśli ostatnio dokonałeś zmian, takich jak dodanie lub usunięcie dużej ilości plików i katalogów, i chcesz użyć polecenia locate do przeszukania tych nowych katalogów i plików, możesz ręcznie zaktualizować bazę danych slocate w dowolnym momencie za pomocą następującego polecenia:

$ sudo updatedb

Zależnie od ilości zmian dokonanych od ostatniej aktualizacji bazy danych slocate, aktualizacja może potrwać od kilku sekund do kilku minut. Gdy już to zrobisz, jesteś gotowy do ponownego wyszukiwania za pomocą locate.

, które

locate jest świetne do przeszukiwania całego systemu plików. Jednakże, czasami chcesz po prostu znaleźć miejsce, w którym znajduje się polecenie. To właśnie tam which wchodzi do gry.

which robi tylko jedną rzecz, ale robi to dobrze. Biorąc pod uwagę nazwę polecenia, powie ci, gdzie znajduje się plik tego polecenia w systemie plików.

Wyobraźmy sobie, że chcemy się dowiedzieć, gdzie znajduje się polecenie firefox. Możemy po prostu wykonać następujące polecenie, aby się tego dowiedzieć:

$ which firefox/usr/bin/firefox

Dlaczego w ogóle chciałbyś szukać konkretnej komendy? Wyobraź sobie, że masz jakiś kod, który musi zastąpić starą komendę. Naprawdę musisz najpierw usunąć starą komendę (ja zwykle zmieniam jej nazwę na taką samą, po której następuje „.bak”, aby zachować ją na wypadek, gdybym jej potrzebował), zanim wstawisz na jej miejsce nową. which pomoże ci znaleźć plik szybko i łatwo, więc nie będziesz musiał szukać go wszędzie.

whereis

Komenda whereis jest podobna do which, ale idzie o krok dalej. Nie tylko powie ci, gdzie znajduje się plik wykonywalny, ale także zlokalizuje źródło, stronę man i inne powiązane katalogi, jak również.

Pozostając przy przykładzie which, zapytajmy whereis o polecenie firefox:

$ whereis firefoxfirefox: /usr/bin/firefox /usr/lib/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz

Pomogło mi ono znaleźć /usr/lib/firefox/plugins wcześniej podczas pracy nad rozwiązaniem dla Flasha, ponieważ w tej lokalizacji są przechowywane globalne dodatki dla Firefoksa.

find

findjest ostatecznym narzędziem wyszukiwania, szwajcarskim scyzorykiem Linuksa, jeśli chcesz. find może zrobić wszystko, od wyszukiwania plików na podstawie czasu ostatniej modyfikacji, właścicieli i grup, uprawnień, typu (plik, katalog, dowiązanie symboliczne, itp.), czy plik jest odczytywalny/zapisywalny/wykonywalny przez bieżącego użytkownika, rozmiaru pliku, czy plik lub katalog jest pusty, i wiele więcej. Możesz także wyszukiwać dopasowania według wyrażeń regularnych.

Kiedy używasz tego narzędzia w połączeniu z poleceniem xargs (które będę musiał omówić innym razem), możesz robić naprawdę niesamowite rzeczy w wierszu poleceń. Wyobraź sobie, że możesz rekursywnie przeszukiwać bieżący katalog w poszukiwaniu plików kończących się na „.bak”, które zostały ostatnio zmodyfikowane ponad 100 dni temu, a następnie usuwać je jednym poleceniem:

$ find . -name '*.bak' -type f -mtime +100 -print0 | xargs -0 /bin/rm -f

Na początku będzie to wyglądało na bardzo skomplikowane, ale kiedy opanujesz sztukę używania find, stanie się to drugą naturą. Wkrótce będziesz się zastanawiał, jak kiedykolwiek szukałeś rzeczy bez niego.

Będąc szczerym, jest o wiele więcej do znalezienia niż jestem skłonny pokryć i jest wiele, wiele wspaniałych wprowadzeń do tego narzędzia, które wykonują lepszą pracę niż ja. Więc, po prostu wskażę ci trzy świetne referencje, które mogą być użyte do rozpoczęcia pracy z find.

  • Przykładowe zastosowania linuksowego polecenia find
  • (z góry przepraszam za okropne kolory) Unix/Linux „find” Command Tutorial
  • Używanie polecenia find

Szczęśliwe poszukiwania.

Czy ci pomogłem?

  • Wyślij mi napiwek przez Paypal.
  • Pomóż w hostingu tej witryny, korzystając z mojego kodu polecającego Linode.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.