Czy lista katalogów jest rekursywna w systemie Linux?

Is List Only Directories Recursively Linux



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) i tak dalej. Użyjesz różnych instrukcji Linuksa, aby rekursywnie przeszukiwać każdy folder przed przejściem 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ą prostej komendy 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 list. 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órych można użyć do rekurencyjnej listy katalogów. Aby zrozumieć każdy z nich z osobna, załóżmy, że w swoim katalogu Linux o nazwie Documents masz 5 plików.

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ą. 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 rekurencyjnie 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ą poniższego zaktualizowanego 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. macOS, systemy uniksopodobne, mają możliwość użycia opcji -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świetlone dane wyjściowe.

$ znajdź /home/aqsayasin/Dokumenty/ -print

Lista rekurencyjna przy użyciu -du Command

Rzućmy okiem na inny przykład, aby rekurencyjnie wyświetlić listę plików lub katalogów za pomocą innej nowej metody. Tym razem użyjemy polecenia -du, aby osiągnąć nasz cel. To polecenie zawiera w sobie flagę -a. 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. Dane wyjściowe pokazują dla niego 5 rekordów, 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 / home / aqsayasin / Dokumenty /

Lista rekurencyjna przy użyciu polecenia drzewa

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 z drzewem słów kluczowych. Weźmy na to przykład za pomocą poniższego polecenia. Dane wyjściowe pokazują dane wyjściowe typu rozgałęzionego drzewa katalogu Dokumenty. Pokazuje 0 katalogów i 5 plików w danych wyjściowych.

$ drzewo /dom/aqsayasin/Dokumenty/

Wypróbujmy to samo polecenie drzewa z inną lokalizacją. Tym razem rekursywnie wymieniamy foldery katalogu „Home” użytkownika aqsayasin. Dane wyjściowe pokazują gałęzie folderu Home zawierające łącznie 14 różnych folderów, podfolderów i 5 plików.

$ drzewo /dom/aqsayasin/

Wniosek

Wypróbowaliśmy wszystkie metody rekurencyjne, aby rekurencyjnie wyświetlać katalogi i pliki, np. flaga -lR, polecenie find and print, du i tree