Finns listan endast kataloger rekursivt i Linux?

Is List Only Directories Recursively Linux



Ordet rekursiv hänvisar till det faktum att ett Linux- eller Unix -operativsystem kommandon behandlar innehållet i mappar, och om en mapp har undermappar och dokument fungerar instruktionen fortfarande med alla dessa dokument (rekursivt). Det kan vara möjligt att barnkatalogen har sin egen uppsättning filer och mappar (till exempel stora mappar), osv. Du kommer att använda olika Linux -instruktioner för att rekursivt gå igenom varje mapp innan du når den till kanten av den angivna mappen. På den nivån återgår Linux-instruktioner till en avstängning av trädet och upprepar processen för alla undermappar som finns. I denna handledning lär du dig alla metoder för att lista katalogerna rekursivt.

Exempel på enkla listor

Först och främst måste du veta hur du listar alla kataloger från ditt Linux -system med det enkla listkommandot. Öppna kommandoradsterminalen och prova kommandot nedan för att bara lista katalogerna. Det kommer inte bara att lista katalogerna utan det totala antalet undermappar och filer som finns i dem. Utdata visar mapparna med information om deras ägare, grupp, läs- och skrivrättigheter och datum för skapande av mappar.







$ ls -l



För att lista alla kataloger och filer i ditt Linux -system måste du använda -la istället för enkel -l i listkommandot. Utför därför det uppdaterade kommandot för att göra det. Utdata visar alla filer och mappar tillsammans med deras ytterligare information.



$ ls -la





För att helt enkelt lista katalogerna utan ytterligare information, prova kommandot nedan följt av flaggan -d.

$ ls –d * /



Du kan också använda samma kommando med liten modifiering för att lista mapparna tillsammans med deras ytterligare information. Du måste bara lägga till -l -flaggan inom detta kommando enligt följande:

$ ls –l –d * /

För att bara kontrollera det totala antalet filer i den specifika hemkatalogen, prova kommandot nedan i skalet. Du får det totala antalet filer i ditt Linux -operativsystem.

$ ls –l | egrep –v ‘^ d’

Exempel på att lista kataloger rekursivt

Det finns olika typer av rekursiva kommandon tillgängliga i Linux -system, som kan användas för att lista katalogerna rekursivt. För att förstå var och en av dem separat, anta att du har fem filer i din Linux -katalog som heter Dokument.

Lista rekursivt med -lR -flagga

Att använda -lR -flaggan i din fråga för att rekursivt lista alla kataloger i ditt Linux -system är den första metoden för att göra det. Vid genomförandet av listkommandot nedan kommer det att lista alla mappar och deras undermappar tillsammans med deras bonusinformation, som visas i utdata.

$ ls -lR

Låt oss bara rekursivt lista alla filer eller mappar från någon specifik mapp eller katalog i ditt Linux -system. För detta ändamål, lägg till platsvägen för den specifika katalogen för att lista den rekursivt. Vi vill rekursivt lista alla filer och mappar i katalogdokumenten som finns i hemkatalogen med hjälp av kommandot nedan. Utdata visar alla filer och mappar i mappen Dokument tillsammans med dess extra information.

$ ls –lR / home / aqsayasin / Documents /

Lista rekursivt med hjälp av kommandot Sök

Gör det klart för dig själv att inte alla Linux -system, t.ex. macOS, Unix -liknande OS, har valet att använda -R för att lista katalogerna. I så fall finns det andra kommandon tillgängliga för att uppfylla våra behov, vilket är kommandot find and print. I det här kommandot ger vi en sökväg till en mapp tillsammans med utnyttjandet av kommandot -ls. När -ls används i kommandot betyder det att det också kommer att visa extra information om de befintliga filerna och mapparna i en specifik katalog. Prova kommandot nedan i skalet för att rekursivt lista alla filer och mappar i katalogdokumenten.

$ find/home/aqsayasin/Documents/-print -ls

Nu måste du prova samma instruktion i skalet med en liten förändring. Vi kommer att undvika att använda -ls -flaggan i det här kommandot för att sluta visa ytterligare information om filer. Utför den nedanstående frågan i skalet, så får du utdata som visas.

$ find/home/aqsayasin/Documents/-print

Lista rekursivt med kommandot -du

Låt oss titta på ett annat exempel för att rekursivt lista filer eller kataloger med en annan ny metod. Den här gången kommer vi att använda kommandot -du för att uppnå vårt syfte. Det här kommandot innehåller -a -flaggan i den. Tillsammans med flaggorna måste vi också ange katalogplatsen. Låt oss utföra nedanstående instruktion i terminalskalet för att rekursivt lista alla mappar eller filer i katalogdokumenten. Utdata visar de 5 posterna för det, som visas nedan. Du kan se detta kommando visar också antalet bett som finns i varje fil.

$ du –a / home / aqsayasin / Documents /

Lista rekursivt med hjälp av trädkommando

Sist men inte minst har vi en mycket enkel och lättanvänd trädkommandometod för att rekursivt lista filer eller mappar. Vi kommer inte att använda någon flagga i det här kommandot än så länge. Du måste ange katalogplatsen tillsammans med nyckelordsträdet. Låt oss få ett exempel på det med hjälp av kommandot nedan. Utmatningen visar utmatningen av trädgrenen av katalogen Dokument. Det visar 0 kataloger och 5 filer i utdata.

$ tree/home/aqsayasin/Documents/

Låt oss prova samma trädkommando med en annan plats. Den här gången listar vi rekursivt mapparna i 'Hem' -katalogen för användaren aqsayasin. Utdata visar grenarna i mappen Hem med totalt 14 olika mappar, undermappar och 5 filer.

$ träd/hem/aqsayasin/

Slutsats

Vi har försökt alla rekursiva metoder för att rekursivt lista kataloger och filer, t.ex. -lR flagga, hitta och skriva ut, du och trädkommando