Er liste bare kataloger rekursivt i Linux?

Er liste bare kataloger rekursivt i Linux?

Ordet "rekursivt" refererer til det faktum at en Linux- eller UNIX -operativsystem -kommandoer omhandler innholdet i mapper, og hvis en mappe har undermapper og dokumenter, fungerer instruksjonen fremdeles med alle disse dokumentene (rekursivt). Det kan være mulig at barnekatalogen har sitt eget sett med filer og mapper (for eksempel store mapper), så videre og så videre. Du vil bruke forskjellige Linux -instruksjoner for å rekursivt krysse hver mappe før du kommer til kanten av den spesifiserte mappen. På det nivået går Linux-instruksjonene tilbake til en avkjøring av treet og gjentar prosessen for alle undermapper som finnes. I denne opplæringen lærer du alle metodene for å liste opp katalogene rekursivt.

Eksempler på enkle listekataloger

Først av alt, må du vite hvordan du lister opp alle katalogene fra Linux -systemet ditt ved hjelp av Simple List -kommandoen. Åpne kommandolinjeterminalen og prøv nedenfor "LS" -kommandoen for å liste opp katalogene. Det vil ikke bare liste opp katalogene, men det totale antallet undermapper og filer som er bosatt i dem. Utgangen viser mappene med informasjonen om eieren, gruppen, leseskrivingsprivilegiene og datoen for oppretting av mapper.

$ ls -l

For å liste opp alle katalogene og filene i Linux-systemet ditt, må du bruke “-La” i stedet for enkel “-l” i listekommandoen. Utfør derfor den oppdaterte kommandoen for å gjøre det. Utgangen viser alle filene og mappene sammen med deres tilleggsinformasjon.

$ ls -la

For bare å liste opp katalogene uten ytterligere informasjon, kan du prøve kommandoen nedenfor etterfulgt av flagget "-D".

$ ls -d */

Du kan også bruke den samme kommandoen med liten modifisering for å liste mappene sammen med deres tilleggsinformasjon. Du må bare legge til “-L” -flagget i denne kommandoen som følger:

$ ls -l -d */

For bare å sjekke det totale antallet filer i den spesifikke hjemmekatalogen, kan du prøve kommandoen nedenfor i skallet i skallet. Du vil få det totale antallet filer i Linux -operativsystemet.

$ ls -l | egrep -v '^d'

Eksempel på oppføring av kataloger rekursivt

Det er forskjellige typer rekursive kommandoer tilgjengelig i Linux -systemer, som kan brukes til å liste opp katalogene rekursivt. For å forstå hver av dem hver for seg, antar du at du har 5 filer i Linux -katalogen som heter “Dokumenter”.

Liste rekursivt ved å bruke "-lr" -flagget

For å bruke "-lr" -flagget i spørringen din for å rekursivt oppgi alle katalogene i Linux-systemet ditt, er den første metoden som gjør det. Etter utførelsen av listekommandoen nedenfor, vil den liste opp alle mappene og deres undermapper sammen med deres bonusdetaljer, som vist i utdataene.

$ ls -lr

La oss bare rekursivt oppgi alle filene eller mappene fra en spesifikk mappe eller katalog i Linux -systemet ditt. For dette formålet, legg til plasseringsveien til den spesifikke katalogen for å liste den rekursivt. Vi ønsker å rekursivt liste opp alle filene og mappene i katalogen "Dokumenter" som er bosatt i "Hjem" -katalogen ved å bruke den nedenfor oppdaterte kommandoen. Utgangen viser alle filene og mappene i "dokumenter" -mappen sammen med den ekstra informasjonen.

$ ls -lr/home/aqsayasin/dokumenter/

Liste rekursivt ved å bruke “Finn” -kommando

Gjør det klart for deg selv at ikke alle Linux -systemer, e.g., MacOS, Unix-lignende OS, har valget mellom å bruke "-r" for å liste opp katalogene. I så fall er det andre kommandoer tilgjengelig for å oppfylle våre behov som er kommandoen "Finn" og "Print". I denne kommandoen vil vi gi bane til en mappe sammen med utnyttelsen av å bruke “-ls” -kommandoen. Når "-ls" brukes i kommandoen, betyr dette at den også vil vise den ekstra informasjonen om de bosatte filene og mappene i en spesifikk katalog. Prøv den under-uttalte kommandoen i skallet for rekursivt liste over alle filene og mappene i katalogen "Dokumenter".

$ FINN/HOME/AQSAYASIN/DOKUMENTER/-PRINT -LS

Nå må du prøve den samme instruksjonen i skallet med en liten forandring. Vi vil unngå å bruke "-ls" -flagget i denne kommandoen for å slutte å vise tilleggsinformasjonen angående filer. Utfør den nedenfor-listede spørringen i skallet, og du vil ha den viste utdataene.

$ FINN/HOME/AQSAYASIN/DOKUMENTER/-TRAPH

Liste rekursivt ved å bruke “-DU” -kommandoen

La oss se på et annet eksempel for å rekursivt oppgi filene eller katalogene med en annen ny metode. Denne gangen vil vi bruke “-DU” -kommandoen for å oppnå vårt formål. Denne kommandoen inneholder “-A flagget i den. Sammen med flaggene må vi også spesifisere katalogstedet. La oss utføre instruksjonen nedenfor i terminalskallet for rekursivt liste over alle mapper eller filer i katalogen "Dokumenter". Utgangen viser de 5 postene for den, som vist nedenfor. Du kan se at denne kommandoen også viser antall biter som bor i hver fil.

$ du -a/home/aqsayasin/dokumenter/

Liste rekursivt ved å bruke “Tree” -kommando

Sist, men ikke minst, har vi en veldig enkel og brukervennlig “Tree” -metode for rekursivt liste over filene eller mappene. Vi vil ikke bruke noe flagg i denne kommandoen så langt. Du må spesifisere katalogstedet sammen med nøkkelordet "Tree". La oss få et eksempel på det ved å bruke kommandoen nedenfor. Utgangen viser “Tree” forgrenet type utdata fra katalogen “Dokumenter”. Det viser 0 kataloger og 5 filer i utdataene.

$ tre/home/aqsayasin/dokumenter/

La oss prøve den samme "treet" -kommandoen med et annet sted. Denne gangen lister vi rekursivt mappene til "Home" -katalogen til brukeren "Aqsayasin". Utgangen viser grenene til mappen “Home” med totalt 14 forskjellige mapper, undermapper og 5 filer.

$ tre/home/aqsayasin/

Konklusjon

Vi har prøvd alle de rekursive metodene for å rekursivt oppgi kataloger og filer, e.g., “-Lr” flagg, finn og skriv ut, du og trekommandoen