Hoe de ls-opdracht te gebruiken om bestanden en mappen op Linux weer te geven

Een terminalvenster op een Linux-laptop.
Fatmawati Achmad Zaenuri / Shutterstock

We gebruiken de Linux ls commandeer elke dag zonder erover na te denken. Dat is jammer. Besteed er wat aandacht aan, en u zult veel handige opties vinden, waaronder enkele die u aan uw opdrachtregelarsenaal zou moeten toevoegen.

ls Geeft een overzicht van bestanden en mappen

De ls commando is waarschijnlijk het eerste commando dat de meeste Linux-gebruikers tegenkomen. Degenen onder ons die rond de opdrachtregel blijven hangen, gebruiken het dag in dag uit zonder er zelfs maar aan te denken. Dat zou kunnen verklaren waarom deze opdracht meer inhoudt dan de meeste gebruikers beseffen. We vermelden er bestanden mee om te zien wat er in een map staat. We geven bestanden in lang formaat weer als we de machtigingen voor een bestand willen bekijken. Afgezien daarvan krijgt het weinig aandacht.

De ls commando is een van die commando’s met een schat aan opties. Misschien is dit een deel van het probleem. Er zijn zoveel opties, hoe zoek je ze door om de bruikbare te vinden? En als je ze hebt gevonden, hoe herinner je je ze dan?

Handige permutaties van de ls commando met hun strings van opties en parameters zijn de perfecte kandidaten voor aliassen. In feite, in de meeste distributies, wat u beschouwt als de ‘naakte’ ls commando is eigenlijk een alias. Onder andere de type commando kan worden gebruikt om de onderliggende definitie van aliassen te tonen. Laten we eens kijken naar de definitie van ls:

type ls

typ ls in een terminalvenster

De --color=auto parameters worden automatisch opgenomen elke keer dat u de ls opdracht. Dit is wat de verschillende kleuren levert voor de verschillende bestandstypen in de lijsten.

VERWANT: Aliassen en shell-functies maken op Linux

Eenvoudige ls-aanbiedingen

Iedereen die enige tijd de Linux-terminal heeft gebruikt, weet dat standaard ls geeft een overzicht van de bestanden en mappen in de huidige map.

ls

ls in een terminalvenster

Als u uw vermelding in één enkele kolom wilt laten maken, gebruikt u de -1 (één bestand per regel) optie:

ls -1

ls -1 in een terminalvenster

We zullen die vreemd uitziende bestandsnaam zo dadelijk bovenaan de lijst bespreken.

Ls gebruiken op verschillende directories

Hebben ls lijst de bestanden in een andere directory dan de huidige directory, geef het pad naar de directory door naar ls op de opdrachtregel. U kunt ook meer dan één directory naar ls, en laat ze achter elkaar opsommen. Hier vragen we ls om de bestanden in twee mappen weer te geven, een genaamd “Help” en de andere genaamd “gc_help.”

ls Help gc_help

ls Help gc_help in een terminalvenster

Wanneer ls heeft de inhoud van de eerste map vermeld, de inhoud van de tweede. Het drukt de naam van elke map af terwijl het ze verwerkt:

Naam van de directory die wordt weergegeven door ls voordat de inhoud wordt weergegeven.

Met behulp van bestandspatronen

Gebruik patroonherkenning om selectief een reeks bestanden weer te geven. Het vraagteken “?“Staat voor een willekeurig teken en het sterretje”*”Staat voor een willekeurige reeks tekens. Gebruik deze indeling om bestanden of mappen weer te geven waarvan de naam begint met “ip_”:

ls ip_*

ls ip_ * in een terminalvenster

Gebruik deze indeling om bestanden weer te geven met de extensie “.c”:

ls *.c

ls * .c in een terminalvenster

Je kan ook gebruiken ls met grep , en gebruiken grep’s patroon matching mogelijkheden. Laten we zoeken naar bestanden met de tekenreeks “_pin_” in hun naam:

ls | grep _pin_

ls |  grep _pin_ in een terminalvenster

Dit is bijna hetzelfde als gebruiken ls op zichzelf, met twee wildcards:

ls | grep _pin_
ls *_pin_*

ls |  grep _pin_ in een terminalvenster

Waarom bijna hetzelfde? Let op de verschillende lay-outs. grep dwingt de uitvoer naar één bestandsnaam per regelopmaak.

Tekens die niet worden afgedrukt

Het is mogelijk dat u een bestandsnaam heeft waarvan de bestandsnaam een ​​niet-afdrukteken of een controleteken heeft. Dit kan meestal gebeuren als je een archief dat je van het web hebt gedownload uitbreidt of een git-repository hebt opgehaald, en de oorspronkelijke auteur een fout heeft gemaakt bij het maken van een bestand maar het niet heeft opgemerkt.

Ons rare bestand is er een van:

Bestandsnaam met een controleteken erin in een terminalvenster

Als we ernaar kijken in de bestandsbrowser en op “F2” drukken om het te hernoemen, worden de niet-afdrukbare tekens weergegeven door een vreemd symbool.

Bestandsnaam met een controlekarakter erin, in het hernoemen dialoogvenster

U kunt de -b (escape) optie waarmee u kunt zien wat de bestandsnaam werkelijk bevat. Deze optie veroorzaakt ls om de escape-reeksen van de programmeertaal C te gebruiken om de controletekens weer te geven.

ls -b a*

ls -ba * in een terminalvenster

Het mysterieuze personage wordt onthuld als een personage uit een nieuwe regel, weergegeven in C als ‘ n’.

Bestanden negeren

Om bepaalde bestanden uit een lijst weg te laten, gebruik je de --hide optie. Stel dat u de back-up “.bak” -bestanden niet in de lijst wilt zien. Je zou deze opdracht kunnen gebruiken:

ls
ls --hide=*.bak

ls --hide = *. bak in een terminalvenster

De “.bak” -bestanden zijn niet opgenomen in de tweede lijst.

De Long Format-lijst

De -l (lange lijst) optie oorzaken ls om gedetailleerde informatie over elk bestand te verstrekken.

ls -l

ls -l in een terminalvenster

Er is hier veel informatie, dus laten we er eens doorheen gaan.

Het eerste ding ls displays is de totale grootte van alle bestanden in de lijst. Vervolgens wordt elk bestand of elke directory op een afzonderlijke regel weergegeven.

De eerste set van tien letters en streepjes is het bestandstype en de eigenaar, groep en andere bestandsrechten.

Het allereerste teken staat voor het bestandstype. Het zal een van de volgende zijn:

  • : Een gewoon bestand.
  • b: Een speciaal blokbestand.
  • c: Een speciaal tekenbestand.
  • d: Een directory.
  • l: Een symbolische link.
  • n: Een netwerkbestand.
  • p: Een genoemde pijp.
  • s: Een stopcontact.

De volgende negen karakters zijn drie groepen van drie karakters die aaneengesloten worden weergegeven. Elke groep van drie vertegenwoordigt de machtigingen voor lezen, schrijven en uitvoeren, in die volgorde. Als de toestemming wordt verleend, is er een r, w, of x Cadeau. Als de toestemming niet wordt verleend, een koppelteken - wordt getoond.

De eerste set van drie tekens zijn de rechten voor de bestandseigenaar. De tweede set van drie machtigingen is voor groepsleden en de laatste set van drie machtigingen is voor anderen.

Soms is de uitvoeringsmachtiging voor het eigenaar wordt vertegenwoordigd door een s. Dit is het setuid-bit. Als het aanwezig is, betekent dit dat het bestand wordt uitgevoerd met de rechten van de eigenaar van het bestand, niet de gebruiker die het bestand uitvoert.

De uitvoeringsmachtiging voor het groep kan ook een s. Dit is het setgid-bit. Wanneer dit op een bestand wordt toegepast, betekent dit dat het bestand wordt uitgevoerd met de rechten van de groep van de eigenaar. Bij gebruik met een map, zullen alle bestanden die erin zijn gemaakt, hun groepsmachtigingen van het directory ze worden gemaakt in, niet door de gebruiker die het bestand maakt.

De uitvoeringsbevoegdheid voor de anderen kan soms worden vertegenwoordigd door een t. Dit is het plakkerige stukje. Het wordt meestal toegepast op mappen. Als dit is ingesteld, ongeacht de schrijf- en uitvoerbare rechten die zijn ingesteld voor de bestanden in de directory, kan alleen de bestandseigenaar, de directory-eigenaar of de rootgebruiker bestanden in de directory hernoemen of verwijderen.

Een veelgebruikt gebruik van de sticky bit is op mappen zoals “/ tmp”. Dit is schrijfbaar voor alle gebruikers op de computer. Het plakkerige bit op de directory zorgt ervoor dat gebruikers – en door de gebruikers gestarte processen – alleen hun eigen tijdelijke bestanden kunnen hernoemen of verwijderen.

We kunnen het plakkerige bit in de map “/ tmp” zien. Let op het gebruik van de -d (directory) optie. Dit veroorzaakt ls om te rapporteren over de details van de directory. Zonder deze optie ls rapporteert over de bestanden in de directory.

ls -l -d /tmp

ls -l -d / tmp in een terminalvenster

VERWANT: Hoe de chmod-opdracht op Linux te gebruiken

Het aantal dat volgt op de machtigingen is het aantal harde links naar het bestand of de directory. Voor een bestand is dit meestal één, maar als er andere harde koppelingen worden gemaakt, zal dit aantal toenemen. Een directory heeft doorgaans ten minste twee harde koppelingen. De ene is een link naar zichzelf en de andere is de vermelding in de bovenliggende directory.

De naam van de eigenaar en de groep worden hierna weergegeven. Ze worden gevolgd door de bestandsgrootte en de datum van de laatste wijziging van het bestand. Ten slotte wordt de bestandsnaam gegeven.

Door mensen leesbare bestandsgroottes

Het is niet altijd handig om de bestandsgroottes in bytes te hebben. Om de bestandsgroottes in de meest geschikte eenheden (kilobytes, megabytes, enz.) Te zien, gebruikt u de -h (door mensen leesbare) optie:

ls -l -h

ls -l -h in een terminalvenster

Verborgen bestanden weergeven

Gebruik de extensie -a (alle) optie:

ls -l -a

ls -l -a in een terminalvenster

De twee vermeldingen “.” en “..” vertegenwoordigen respectievelijk de huidige directory en de bovenliggende directory. Een bestand met de naam “.base_settings” is nu voor het eerst zichtbaar.

Weglaten. en .. van Listings

Als u niet wilt dat uw vermelding vol staat met de “.” en “..” items, maar u wilt wel verborgen bestanden zien, gebruik dan de -A (bijna alle) optie:

ls -l -A

ls -l -A in een terminalvenster

Het verborgen bestand wordt nog steeds vermeld, maar de “.” en “..” items worden onderdrukt.

Mappen recursief weergeven

Hebben ls lijst de bestanden in alle submappen gebruik de -R (recursieve) optie

ls -l -R

ls -l -R in een terminalvenster

ls baant zich een weg door de hele mappenboom onder de startmap en geeft een overzicht van de bestanden in elke submap.

uitvoer van ls recursief mappen

De UID en GID weergeven

Om de gebruikers-ID en groeps-ID weer te geven in plaats van de gebruikersnaam en groepsnaam, gebruikt u de -n (numerieke uid en gid) optie.

ls -n

ls -n in een terminalvenster

De aanbiedingen sorteren

U kunt de lijst sorteren op extensie, bestandsgrootte of wijzigingstijd. Deze opties hoeven niet te worden gebruikt met het lange lijstformaat, maar het is meestal logisch om dit te doen. Als u op bestandsgrootte sorteert, is het logisch om de bestandsgroottes in de lijst te zien. Wanneer u op extensietype sorteert, is het formaat van de lange lijst niet zo belangrijk.

Gebruik de extensie om op extensie te sorteren -X (sorteer op extensie) optie.

ls -X -1

ls -X -1 in een terminalvenster

De mappen worden eerst vermeld (helemaal geen extensies) en de rest volgt in alfabetische volgorde, volgens de extensies.

Om op bestandsgrootte te sorteren, gebruikt u de -S (sorteer op bestandsgrootte) optie.

ls -l -h -S

ls -l -h -S in een terminalvenster

De sorteervolgorde is van groot naar klein.

Om de lijst op wijzigingstijd te sorteren, gebruikt u de -t (sorteer op wijzigingstijd) optie.

ls -l -t

ls -l -t in een terminalvenster

De aanbieding is gesorteerd op de wijzigingstijd.

Als de wijzigingstijd van het bestand binnen het huidige jaar valt, is de weergegeven informatie de maand, dag en tijd. Als de wijzigingsdatum niet in het huidige jaar viel, is de informatie die wordt weergegeven de maand, de dag en het jaar.

Een snelle manier om de nieuwste en oudste bestanden in een directory te krijgen, is door ls met de head en tail commando’s.

Gebruik deze opdracht om het nieuwste bestand of de nieuwste map te krijgen:

ls -t | head -1

Gebruik deze opdracht om het oudste bestand of de oudste map op te halen:

ls -t | tail -1

ls -t |  head -1 in een terminalvenster

Om de sorteervolgorde om te keren

Om een ​​van de sorteervolgorde om te keren, gebruikt u de -r (omgekeerde) optie.

ls -l -h -S -r

ls -l -h -S -r in een terminalvenster

De lijst is nu gerangschikt van het kleinste bestand naar het grootste bestand.

En er is meer

Bekijk de man-pagina voor ls, er zijn veel meer mogelijkheden. Sommigen van hen voldoen aan enigszins obscure use-cases, maar af en toe zult u blij zijn dat u ze kent.

Moet je de tijdstempels van het bestand zien met de maximale precisie die Linux kan bieden? Gebruik de fulltime optie:

ls --full-time

Misschien wilt u het inode-nummer van de bestanden zien? Gebruik de inode-optie:

ls -i

Werk je aan een monochroom beeldscherm en wil je alle risico op verwarrende bestanden voor mappen en links verwijderen? Gebruik de classificeeroptie, en ls voegt een van deze toe aan elke vermelding:

  • /: Een directory.
  • @: Een symlink.
  • |: Een genoemde pijp.
  • =: Een stopcontact.
  • *: Een uitvoerbare bestanden
ls -F

Doe wat graven. Dat zul je ontdekken ls is een rijke ader, en je blijft edelstenen tegenkomen.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in