Słowo „rekurencyjne” odnosi się do faktu, że polecenia systemu operacyjnego Linux lub Unix zajmują się zawartością folderów, a jeśli folder ma podfoldery i dokumenty, instrukcja nadal działa ze wszystkimi tymi dokumentami (rekursywnie). Możliwe, że katalog podrzędny ma własny zestaw plików i folderów (na przykład duże foldery) itd. Użyjesz różnych instrukcji Linuksa, aby rekursywnie przeszukiwać każdy folder, zanim przejdziesz do krawędzi określonego folderu. Na tym poziomie instrukcje Linuksa powracają do wyłączenia drzewa i powtarzają proces dla wszystkich istniejących podfolderów. W tym samouczku poznasz wszystkie metody rekurencyjnej listy katalogów.
Przykłady prostych katalogów list
Przede wszystkim musisz wiedzieć, jak wyświetlić listę wszystkich katalogów z twojego systemu Linux za pomocą prostego polecenia list. Otwórz terminal wiersza poleceń i wypróbuj poniższe polecenie „ls”, aby wyświetlić tylko katalogi. Nie tylko wyświetli listę katalogów, ale całkowitą liczbę podfolderów i plików w nich znajdujących się. Dane wyjściowe pokazują foldery z informacjami dotyczącymi ich właściciela, grupy, uprawnień do odczytu i zapisu oraz daty utworzenia folderów.
$ ls -l
Aby wyświetlić listę wszystkich katalogów i plików w systemie Linux, musisz użyć „-la” zamiast prostego „-l” w poleceniu listy. Dlatego wykonaj zaktualizowane polecenie, aby to zrobić. Dane wyjściowe pokazują wszystkie pliki i foldery wraz z ich dodatkowymi informacjami.
$ ls -la
Aby po prostu wyświetlić listę katalogów bez dodatkowych informacji, wypróbuj poniższe polecenie, a następnie flagę „-d”.
$ ls -d */
Możesz również użyć tego samego polecenia z niewielką modyfikacją, aby wyświetlić listę folderów wraz z dodatkowymi informacjami. Musisz tylko dodać flagę „-l” w tym poleceniu w następujący sposób:
$ ls -l -d */
Aby sprawdzić tylko całkowitą liczbę plików w określonym katalogu domowym, wypróbuj poniższe polecenie w powłoce. Otrzymasz całkowitą liczbę plików w twoim systemie operacyjnym Linux.
$ ls -l | egrep -v '^d'
Przykład rekursywnego wystawiania katalogów
W systemach Linux dostępne są różne typy poleceń rekurencyjnych, które można wykorzystać do rekurencyjnej listy katalogów. Aby zrozumieć każdy z nich z osobna, załóżmy, że masz 5 plików w swoim katalogu Linux o nazwie „Dokumenty”.
Wyświetlanie listy rekurencyjnej przy użyciu flagi „-lR””
Użycie flagi „-lR” w zapytaniu do rekursywnej listy wszystkich katalogów systemu Linux jest pierwszą metodą na zrobienie tego. Po wykonaniu poniższego polecenia listy wyświetli listę wszystkich folderów i ich podfolderów wraz z ich szczegółami bonusowymi, jak pokazano w danych wyjściowych.
$ ls -lR
Pozwól nam po prostu rekursywnie wypisać wszystkie pliki lub foldery z określonego folderu lub katalogu twojego systemu Linux. W tym celu dodaj ścieżkę lokalizacji określonego katalogu, aby wyświetlić go rekurencyjnie. Chcemy rekursywnie wyświetlać wszystkie pliki i foldery katalogu „Dokumenty” znajdujące się w katalogu „domowym” za pomocą zaktualizowanego poniżej polecenia. Dane wyjściowe wyświetlają wszystkie pliki i foldery w folderze „Dokumenty” wraz z dodatkowymi informacjami.
$ ls -lR /home/aqsayasin/Dokumenty/
Lista rekurencyjna za pomocą polecenia „Znajdź”
Wyjaśnij sobie, że nie wszystkie systemy Linux, np.sol., macOS, uniksopodobny system operacyjny, może wybrać opcję „-R” do wyświetlenia katalogów. W takim przypadku dostępne są inne polecenia spełniające nasze potrzeby, takie jak polecenie „znajdź” i „drukuj”. W tym poleceniu podamy ścieżkę do folderu wraz z dźwignią użycia polecenia „-ls”. Gdy w poleceniu jest używane „-ls”, oznacza to, że pokaże również dodatkowe informacje dotyczące rezydujących plików i folderów określonego katalogu. Wypróbuj poniższe polecenie w powłoce, aby rekurencyjnie wyświetlić wszystkie pliki i foldery katalogu „Dokumenty”.
$ znajdź /home/aqsayasin/Dokumenty/ -print -ls
Teraz musisz wypróbować tę samą instrukcję w powłoce z niewielką zmianą. Unikamy używania flagi „-ls” w tym poleceniu, aby przestać wyświetlać dodatkowe informacje dotyczące plików. Wykonaj poniższe zapytanie w powłoce, a otrzymasz wyświetlony wynik.
$ znajdź /home/aqsayasin/Dokumenty/ -print
Wyświetlanie listy rekurencyjnej za pomocą polecenia „-du”
Rzućmy okiem na inny przykład rekurencyjnej listy plików lub katalogów za pomocą innej nowej metody. Tym razem użyjemy polecenia „-du”, aby osiągnąć nasz cel. To polecenie zawiera „-flagę”. Wraz z flagami musimy również określić lokalizację katalogu. Wykonajmy poniższą instrukcję w powłoce terminala, aby rekurencyjnie wyświetlić wszystkie foldery lub pliki katalogu „Dokumenty”. Wynik pokazuje 5 rekordów dla niego, jak pokazano poniżej. Możesz zobaczyć, że to polecenie pokazuje również liczbę bitów znajdujących się w każdym pliku.
$ du -a /dom/aqsayasin/Dokumenty/
Lista rekursywnie za pomocą polecenia „drzewo”
Wreszcie, mamy bardzo prostą i łatwą w użyciu metodę poleceń „drzewa”, aby rekurencyjnie wyświetlać pliki lub foldery. Jak dotąd nie będziemy używać żadnej flagi w tym poleceniu. Musisz określić lokalizację katalogu wraz ze słowem kluczowym „drzewo”. Weźmy na to przykład za pomocą poniższego polecenia. Wyjście pokazuje rozgałęzione wyjście typu „drzewo” katalogu „Dokumenty”. Pokazuje 0 katalogów i 5 plików na wyjściu.
$ drzewo /dom/aqsayasin/Dokumenty/
Wypróbujmy to samo polecenie „drzewo” z inną lokalizacją. Tym razem rekurencyjnie wymieniamy foldery katalogu „Home” użytkownika „aqsayasin”. Dane wyjściowe pokazują gałęzie folderu „Dom” zawierające w sumie 14 różnych folderów, podfolderów i 5 plików.
$ drzewo /dom/aqsayasin/
Wniosek
Wypróbowaliśmy wszystkie rekurencyjne metody rekurencyjnej listy katalogów i plików, np.sol., flaga „-lR”, polecenie znajdź i drukuj, du i drzewo