Polecenie Znajdź w Linuksie (Znajdź pliki i katalogi)

0 Comments

polecenie find jest jednym z najpotężniejszych narzędzi w arsenale administratorów systemu Linux. Wyszukuje pliki i katalogi w hierarchii katalogów w oparciu o dane wyrażenie użytkownika i może wykonywać określone przez użytkownika działania na każdym dopasowanym pliku.

możesz użyć poleceniafind do wyszukiwania plików i katalogów na podstawie ich uprawnień, typu, daty, własności, rozmiaru i innych., Można go również łączyć z innymi narzędziami, takimi jak greplub sed.

znajdź składnię polecenia #

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

  • atrybut options kontroluje traktowanie dowiązań symbolicznych, opcje debugowania i metoda optymalizacji.
  • atrybutpath... definiuje katalog początkowy lub katalogi, w których find przeszukuje pliki.,
  • atrybutexpression składa się z opcji, wzorców wyszukiwania i akcji oddzielonych operatorami.

aby wyszukać pliki w katalogu, użytkownik wywołujący poleceniefind musi mieć uprawnienia do odczytu w tym katalogu.

spójrzmy na następujący przykład:

Znajdź pliki po nazwie #

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

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

aby uruchomić wyszukiwanie bez rozróżniania wielkości liter, należy zmienić -name opcja z :

powyższe polecenie będzie pasowało do „dokumentu.pdf”, ” dokument.pdf”..itd.,

wyszukiwanie plików po rozszerzeniu #

wyszukiwanie plików po rozszerzeniu jest tym samym, co wyszukiwanie plików po nazwie. Na przykład, aby znaleźć wszystkie pliki kończące się .log.gz w katalogu /var/log/nginx należy wpisać:

należy wspomnieć, że należy albo zacytować wzór, albo usunąć gwiazdkę * symbol z odwrotnym ukośnikiem \ aby nie był interpretowany przez powłokę podczas używania znaku wieloznacznego.,

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

Znajdź pliki według typu #

czasami może być konieczne wyszukiwanie określonych typów plików, takich jak zwykłe pliki, katalogi lub dowiązania symboliczne. W Linuksie wszystko jest plikiem.,div>: named pipe (FIFO)

  • s: socket
  • na przykład, aby znaleźć wszystkie katalogi w bieżącym katalogu roboczym , należy użyć:

    powszechnym przykładem może być rekurencyjna zmiana uprawnień do pliku witryny na 644 I uprawnienia katalogu do 755 używając polecenia chmod:

    Znajdź pliki według rozmiaru #

    aby znaleźć pliki na podstawie rozmiaru, przekaż -size parametr wraz z kryteriami wielkości.,9fdb538a6b”>: 512-bajtowe bloki (domyślnie)

  • c: bajty
  • w: dwubajtowe słowa
  • k: kilobajty
  • M: megabajty
  • G: gigabajty
  • poniższe polecenie znajdzie wszystkie pliki dokładnie 1024 bajtów wewnątrz /tmp katalog:

    polecenie find umożliwia również wyszukiwanie plików większych lub mniejszych niż określony rozmiar.,

    w poniższym przykładzie wyszukujemy wszystkie pliki mniejsze niż 1MB w bieżącym katalogu roboczym. Zauważ minus - symbol przed wartością rozmiaru:

    Jeśli chcesz wyszukać pliki o rozmiarze większym niż 1MB, musisz użyć symbolu plus + symbol:

    możesz nawet wyszukiwać pliki w zakresie rozmiarów., Poniższe polecenie znajdzie wszystkie pliki pomiędzy 1 I 2MB:

    Znajdź pliki według daty modyfikacji #

    find polecenie może szukaj również plików na podstawie ich ostatniej modyfikacji, dostępu lub czasu zmiany.

    podobnie jak podczas wyszukiwania według rozmiaru, użyj symboli plus i minus dla „większe niż” lub „mniej niż”.

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

    oto kolejny przykład filtrowania plików na podstawie daty modyfikacji za pomocą -daystart , Poniższe polecenie wyświetli listę wszystkich plików w katalogu /home, które zostały zmodyfikowane 30 lub więcej dni temu:

    Znajdź pliki według uprawnień #

    -perm pozwala na wyszukiwanie plików na podstawie uprawnień do plików.,

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

    można przedrostek trybu numerycznego z minusem - lub Slash /.

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

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

    powyższe polecenie dopasuje wszystkie pliki z uprawnieniami do odczytu ustawionymi dla użytkownika, grupy lub innych.

    Jeśli prefiks minus - jest używany jako prefiks, to aby plik był zgodny, należy ustawić przynajmniej określone bity., Poniższe polecenie wyszukuje pliki, które mają uprawnienia do odczytu i zapisu dla właściciela i grupy oraz są czytelne dla innych użytkowników:

    Znajdź pliki według właściciela #

    aby znaleźć pliki należące do określonego użytkownika lub grupy, użyj -user I -group opcje.

    na przykład, aby wyszukać wszystkie pliki i katalogi należące do użytkownika linuxize, należy uruchomić:

    Oto prawdziwy przykład., 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:

    znajdź i usuń pliki #

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

    upewnij się, że używasz tej opcji tylko wtedy, gdy masz pewność, że wynik pasuje do plików, które chcesz usunąć., Zawsze dobrym pomysłem jest wydrukowanie dopasowanych plików przed użyciem opcji -delete.

    na przykład, aby usunąć wszystkie pliki kończące się .temp z /var/log/, należy użyć:

    -deleteopcja ze szczególną ostrożnością. Poleceniefind jest obliczane jako wyrażenie i jeśli najpierw dodasz opcję-delete, polecenie usunie wszystko poniżej podanych punktów początkowych.,

    jeśli chodzi o katalogi,find może usuwać tylko puste katalogi, tak samo jakrmdir .

    podsumowanie #

    pokazaliśmy ci, jak używać poleceniafind z różnymi opcjami i kryteriami.

    Ten artykuł powinien dać ci podstawowe zrozumienie, jak zlokalizować pliki na swoich systemach Linux. Możesz również odwiedzić stronę podręcznikafindI przeczytać o wszystkich innych potężnych opcjach polecenia find.


    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *