Android

Jak znaleźć pliki w systemie Linux za pomocą wiersza polecenia

Poradnik komenda dd czyli nagrywamy plik .iso na pendrive w linuxie

Poradnik komenda dd czyli nagrywamy plik .iso na pendrive w linuxie

Spisu treści:

Anonim

Polecenie find jest jednym z najpotężniejszych narzędzi w arsenale administratorów systemu Linux. Wyszukuje pliki i katalogi w hierarchii katalogów na podstawie wyrażenia podanego przez użytkownika i może wykonać określone przez użytkownika działanie na każdym dopasowanym pliku.

Za pomocą polecenia find można wyszukiwać pliki i katalogi na podstawie ich uprawnień, typu, daty, własności, rozmiaru i innych. Można go również używać w połączeniu z innymi narzędziami, takimi jak grep lub sed .

Linux find składnię poleceń

Ogólna składnia polecenia find jest następująca:

find

  • Atrybut options kontroluje sposób traktowania dowiązań symbolicznych, opcji debugowania i metody optymalizacji. Atrybut path… określa katalog początkowy lub katalogi, w których find przeszuka pliki. Atrybut expression składa się z opcji, wzorców wyszukiwania i akcje rozdzielone przez operatorów.

Aby wyszukiwać pliki w katalogu, użytkownik wywołujący polecenie find musi mieć uprawnienia do odczytu tego katalogu.

Rzućmy okiem na następujący przykład:

find -L /var/www -name "*.js"

  • Opcja -L (opcje) informuje komendę find aby podążała za dowiązaniami symbolicznymi. /var/www Var /var/www (ścieżka…) określa katalog, który będzie przeszukiwany. (Wyrażenie) -name "*.js mówi, aby wyszukać pliki kończące się na .js (pliki JavaScript).

Znajdź pliki według nazwy

Wyszukiwanie plików według nazwy jest prawdopodobnie najczęstszym zastosowaniem polecenia find . Aby znaleźć plik według jego nazwy, użyj opcji -name po nazwie pliku, którego szukasz.

Na przykład, aby wyszukać plik o nazwie document.pdf w katalogu /home/linuxize , użyj następującego polecenia:

find /home/linuxize -type f -name document.pdf

Aby uruchomić wyszukiwanie bez rozróżniania wielkości liter, zmień opcję -name pomocą opcji -iname :

find /home/linuxize -type f -iname document.pdf

Powyższe polecenie będzie pasować do „Document.pdf”, „DOCUMENT.pdf”..etc.

Znajdź pliki według rozszerzenia

Wyszukiwanie plików według rozszerzenia jest takie samo, jak wyszukiwanie plików według nazwy. Na przykład, aby znaleźć wszystkie pliki z .log.gz w katalogu /var/log/nginx , możesz użyć:

find /var/log/nginx -type f -name '*.log.gz'

Ważne jest, aby wspomnieć, że gdy używasz znaku wieloznacznego, musisz albo zacytować wzór, albo uciec z symbolu gwiazdki * ukośnikiem odwrotnym \ aby nie został on zinterpretowany przez powłokę.

Aby znaleźć wszystkie pliki, które nie pasują do wyrażenia regularnego *.log.gz , możesz użyć opcji *.log.gz . Na przykład, aby znaleźć wszystkie pliki, które nie kończą się na *.log.gz , należy użyć:

find /var/log/nginx -type f -not -name '*.log.gz'

Znajdź pliki według typu

Czasami może być konieczne wyszukiwanie określonych typów plików, takich jak normalne pliki, katalogi lub dowiązania symboliczne. W Linuksie wszystko jest plikiem.

Aby wyszukać pliki na podstawie ich typu, użyj opcji -type i jednego z następujących deskryptorów, aby określić typ pliku:

  • f : zwykły plik d : katalog l : dowiązanie symboliczne c : urządzenia znakowe b : urządzenia blokowe p : nazwany potok (FIFO) s : gniazdo

Na przykład, aby znaleźć wszystkie katalogi w bieżącym katalogu roboczym, użyj:

find. -type d

Typowym przykładem może być rekurencyjna zmiana uprawnień do plików strony internetowej na 644 i uprawnień do katalogu na 755 za pomocą komendy chmod :

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

Znajdź pliki według rozmiaru

Aby znaleźć pliki na podstawie rozmiaru pliku, przekaż parametr -size wraz z kryteriami rozmiaru. Możesz użyć następujących sufiksów, aby określić rozmiar pliku:

  • b : 512-bajtowe bloki (domyślnie) c : bajty w : słowa dwubajtowe k : Kilobajty M : Megabajty G : Gigabajty

Następujące polecenie znajdzie wszystkie pliki o dokładnie 1024 bajtach w katalogu /tmp :

find /tmp -type f -size 1024c

Polecenie find umożliwia także wyszukiwanie plików, które są większe lub mniejsze niż określony rozmiar.

W poniższym przykładzie szukamy wszystkich plików mniejszych niż 1MB w bieżącym katalogu roboczym. Zwróć uwagę na symbol minus przed wartością rozmiaru:

find. -type f -size -1M

find. -type f -size +1M

Możesz nawet wyszukiwać pliki w zakresie rozmiarów. Następujące polecenie znajdzie wszystkie pliki o 2MB od 1 do 2MB :

find. -type f -size +1M -size 21M

Znajdź pliki według daty modyfikacji

Polecenie find może także wyszukiwać pliki na podstawie ich ostatniej modyfikacji, dostępu lub zmiany czasu.

Tak samo jak przy wyszukiwaniu według rozmiaru, użyj symboli plus i minus dla „większego niż” lub „mniejszego niż”.

Powiedzmy, że kilka dni temu zmodyfikowałeś jeden z plików konfiguracyjnych dovecot, ale zapomniałeś, który z nich. Możesz łatwo filtrować wszystkie pliki w katalogu /etc/dovecot/conf.d który kończy się na .conf i został zmodyfikowany w ciągu ostatnich pięciu dni za pomocą:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Oto kolejny przykład filtrowania plików na podstawie daty modyfikacji przy użyciu opcji -daystart . Poniższe polecenie wyświetli listę wszystkich plików w katalogu /home które zostały zmodyfikowane 30 lub więcej dni temu:

find /home -mtime +30 -daystart

Znajdź pliki według uprawnień

Opcja -perm umożliwia wyszukiwanie plików na podstawie uprawnień do plików.

Na przykład, aby znaleźć wszystkie pliki z uprawnieniami dokładnie 775 w katalogu /var/www/html , należy użyć:

find /var/www/html -perm 644

Możesz poprzedzić tryb numeryczny znakiem minus - lub ukośnikiem / .

Gdy slash / jest używany jako prefiks, to co najmniej jedna kategoria (użytkownik, grupa lub inne) musi mieć ustawione co najmniej odpowiednie bity, aby plik pasował.

Rozważ następujące przykładowe polecenie:

find. -perm /444

Powyższe polecenie dopasuje wszystkie pliki z uprawnieniami do odczytu ustawionymi dla użytkownika, grupy lub innych osób.

Jeśli jako prefiks zastosowano minus - to aby plik pasował co najmniej określone bity muszą być ustawione. Następujące polecenie wyszuka pliki, które mają uprawnienia do odczytu i zapisu dla właściciela i grupy i są czytelne dla innych użytkowników:

find. -perm -664

Znajdź pliki według właściciela

Aby znaleźć pliki należące do określonego użytkownika lub grupy, użyj opcji -user i -group .

Na przykład, aby wyszukać wszystkie pliki i katalogi będące własnością użytkownika linuxize , uruchomiłbyś:

find / -user linuxize

Oto przykład z prawdziwego świata. Załóżmy, że chcesz znaleźć wszystkie pliki należące do użytkownika www-data i zmienić własność dopasowanych plików z www-data na nginx :

find / -user www-data -type f -exec chown nginx {} ;

Znajdź i usuń pliki

Aby usunąć wszystkie pasujące pliki, -delete opcję -delete na końcu wyrażenia dopasowania.

Upewnij się, że korzystasz z tej opcji tylko wtedy, gdy masz pewność, że wynik pasuje do plików, które chcesz usunąć. Zawsze dobrze jest wydrukować dopasowane pliki przed użyciem opcji -delete .

Na przykład, aby usunąć wszystkie pliki z .temp z /var/log/ którego byś użył:

find /var/log/ -name `*.temp` -delete -delete opcją -delete należy zachować szczególną ostrożność. Wiersz polecenia Znajdź jest oceniany jako wyrażenie i jeśli najpierw dodasz opcję -delete , polecenie usunie wszystko poniżej określonych punktów początkowych.

Jeśli chodzi o katalogi, find może usunąć tylko puste katalogi takie same jak rmdir .

Wniosek

Pokazaliśmy, jak używać polecenia find z różnymi opcjami i kryteriami.

Ten artykuł powinien dać ci podstawową wiedzę na temat lokalizowania plików w systemach Linux. Możesz także odwiedzić stronę podręcznika find i przeczytać o wszystkich innych potężnych opcjach polecenia find .

znajdź terminal