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
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
Als u uw vermelding in één enkele kolom wilt laten maken, gebruikt u de -1
(één bestand per regel) optie:
ls -1
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
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:
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_*
Gebruik deze indeling om bestanden weer te geven met de extensie “.c”:
ls *.c
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_
Dit is bijna hetzelfde als gebruiken ls
op zichzelf, met twee wildcards:
ls | grep _pin_
ls *_pin_*
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:
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.
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*
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
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
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
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
Verborgen bestanden weergeven
Gebruik de extensie -a
(alle) optie:
ls -l -a
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
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
baant zich een weg door de hele mappenboom onder de startmap en geeft een overzicht van de bestanden in elke submap.
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
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
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
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
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
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
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.