4 Great Tools to Find Files Quickly in Ubuntu

Mulți dintre voi, colegi utilizatori Ubuntu, sunteți familiarizați cu instrumentul „Search for Files” care vă permite să căutați fișiere. Așa cum se întâmplă cu majoritatea lucrurilor în Linux, există instrumente de birou excelente, dar în Terminal se poate găsi mai multă putere decât poate egala orice instrument de birou simplificat.

Astăzi, aș dori să vă prezint câteva instrumente care pot transforma o corvoadă de căutare a fișierelor într-un proces ușor.

locate

Primul instrument cu care ar trebui să vă acomodați este și unul dintre cele mai simple. Programul locate funcționează într-un mod similar cu majoritatea instrumentelor de căutare grafică.

Utilizare

Să spunem că ați citit despre cum să modificați X pentru a oferi performanțe video îmbunătățite. Documentul pe care îl citiți spune să modificați fișierul xorg.conf, dar documentul nu spune unde se află acesta și nu știți cum să-l găsiți. Puteți folosi locate pentru a-l găsi rapid pentru dumneavoastră:

$ 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

Este clar că /etc/X11/xorg.conf este fișierul pe care îl căutăm, dar ce se întâmplă dacă sunt returnate zeci sau chiar sute de rezultate? Cum ați putea gestiona toate acestea? Dacă știți câte ceva despre expresiile regulate (fiecare utilizator de Linux ar trebui să învețe cu adevărat noțiunile de bază), puteți utiliza cu ușurință expresiile regulate pentru a căuta directoare sau fișiere. De exemplu, putem căuta o potrivire exactă pentru xorg.conf cu următoarea comandă:

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

Dacă doriți să căutați fișiere fără sensibilitate la majuscule și minuscule, puteți utiliza opțiunea -i. De exemplu:

$ 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

Un lucru care vă poate deruta atunci când începeți să utilizați pentru prima dată locate este faptul că nu numai că returnează potriviri, dar dacă potrivirea este un director, enumeră și toate directoarele și fișierele din acel director. De exemplu:

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

Această comandă returnează mai mult de o mie de intrări pe sistemul meu. Pentru a reduce rezultatele la o listă de intrări care corespund termenului de căutare, fără toate fișierele și directoarele conținute, folosiți opțiunea -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

Încă sunt destul de multe potriviri, dar nu mai trebuie să sortăm toate rezultatele suplimentare pentru a găsi ceea ce căutăm.

Nota importantă

Comanda locatese bazează pe o bază de date slocate pentru a funcționa. Această bază de date memorează în cache numele directoarelor și ale fișierelor din sistemul de fișiere și permite comenzii locate să funcționeze în câteva momente, mai degrabă decât să necesite perioade lungi de timp pentru a căuta în întregul sistem de fișiere.

Această abilitate nu vine însă fără costuri. În mod implicit, sistemul dvs. va rula o comandă de actualizare a acestei baze de date o dată pe zi, la ora 6:25. Această comandă va actualiza baza de date cu toate modificările efectuate în sistemul de fișiere de la ultima actualizare.

Dacă ați făcut modificări recent, cum ar fi adăugarea sau eliminarea unor cantități mari de fișiere și directoare, și doriți să utilizați comanda locate pentru a căuta prin aceste noi directoare și fișiere, puteți actualiza manual baza de date slocate în orice moment cu următoarea comandă:

$ sudo updatedb

În funcție de volumul modificărilor efectuate de la ultima actualizare a bazei de date slocate, actualizarea poate dura de la câteva secunde la câteva minute. După ce s-a făcut, sunteți gata să căutați din nou cu locate.

care

locate este excelentă pentru a căuta în întregul sistem de fișiere. Cu toate acestea, uneori doriți doar să găsiți unde locuiește o comandă. Aici intervine which.

which face un singur lucru, dar îl face bine. Dat fiind numele unei comenzi, care vă va spune unde se află fișierul pentru acea comandă în sistemul de fișiere.

Să ne imaginăm că vrem să aflăm unde se află comanda firefox. Putem rula pur și simplu următoarele pentru a afla:

$ which firefox/usr/bin/firefox

De ce ați dori vreodată să căutați în mod specific o comandă? Imaginați-vă că aveți un cod care trebuie să înlocuiască o comandă veche. Trebuie neapărat să o eliminați pe cea veche (eu de obicei o redenumesc cu același nume urmat de „.bak” pentru a o păstra în caz că am nevoie de ea) înainte de a o pune pe cea nouă în locul ei. which vă va ajuta să găsiți fișierul rapid și ușor, astfel încât să nu trebuiască să căutați peste tot pentru a-l găsi.

whereis

Comanda whereis este similară cu which, dar merge un pas mai departe. Nu numai că vă spune unde se află fișierul executabil, dar va localiza, de asemenea, sursa, pagina de manual și alte directoare asociate.

Continuând cu exemplul which, să întrebăm whereis despre comanda firefox:

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

Aceasta m-a ajutat să găsesc /usr/lib/firefox/plugins mai devreme când lucram la soluția pentru Flash, deoarece acea locație este locul unde sunt stocate add-on-urile globale pentru Firefox.

find

find este instrumentul de căutare suprem, cuțitul elvețian al căutării în Linux, dacă vreți. find poate face orice, de la căutarea fișierelor pe baza orelor de ultimă modificare, a proprietarilor și grupurilor, a permisiunilor, a tipului (fișier, director, legătură simbolică etc.), dacă fișierul poate fi citit/scris/executat de către utilizatorul curent, dimensiunea fișierului, dacă fișierul sau directorul este gol și multe altele. De asemenea, puteți căuta potriviri prin expresie regulată.

Când folosiți acest instrument în combinație cu comanda xargs (pe care va trebui să o abordez cu altă ocazie), puteți face lucruri cu adevărat uimitoare în linia de comandă. Imaginați-vă că puteți căuta recursiv prin directorul curent fișierele care se termină cu „.bak” care au fost modificate ultima dată cu mai mult de 100 de zile în urmă și apoi să le ștergeți cu o singură comandă:

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

La început va părea foarte complex, dar când veți stăpâni arta de a folosi find, va deveni o a doua natură. În curând, vă veți întreba cum ați căutat vreodată lucruri fără el.

Pentru a fi sincer, este mult mai mult de găsit decât sunt dispus să acopăr și există multe, multe introduceri excelente la acest instrument care fac o treabă mai bună decât aș face eu. Așadar, vă voi indica pur și simplu trei referințe grozave care pot fi folosite pentru a începe cu find.

  • Exemple de utilizare a comenzii Linux find
  • (Îmi cer scuze în avans pentru culorile oribile) Tutorialul comenzii Unix/Linux „find”
  • Utilizarea comenzii find

Cercetare plăcută.

Te-am ajutat?

  • Trimite-mi un bacșiș prin Paypal.
  • Ajută la găzduirea acestui site cu codul meu de recomandare Linode.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.