Ls
The Bash command ls
(from list) displays the content of a folder - It's probably one of the most-used Bash commands. E.g.:
ls / bin dev home initrd.img.old lib64 media opt root sbin srv sys usr vmlinuz boot etc initrd.img lib lost+found mnt proc run snap swapfile tmp var vmlinuz.old
Use cases
Limit output to only 1 column
By default, the output of ls
is layout in multiple columns. Sometimes I want this to be only one column, e.g., to copy the contents to a text editor (without first redirecting the output of ls
to a file): ls -1
. E.g.:
$ ls -1 / backup bin boot dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv sys usr var
Switches
Gewoon, zonder switches - toon directory:
ls
-a, --all
Inclusief dot-files (ook .
en ..
):
ls -a
-A, --almost-all
Inclusief dot-files, behalve .
en ..
:
ls -A
-C
Wordt toegepast in .bashrc-alias l
. Ik zie geen verschil.
-F, --classify
- Append indicator (one of */=>@|) to entries
- Misschien handig voor filteren e.d.?
-long
Inclusief details:
ls -long
-l
Long listing-format - Nog meer informatie dan met -long
. Er is geen synoniem met --
voor deze switch.
ls -l
Voorbeeld:
totaal 384 drwx------ 49 jeroen jeroen 32768 2011-07-18 08:37 1 drwx------ 48 jeroen jeroen 32768 2011-07-19 08:22 2 drwx------ 52 jeroen jeroen 32768 2011-07-06 08:51 3 drwx------ 48 jeroen jeroen 32768 2011-07-21 08:07 4 drwx------ 48 jeroen jeroen 32768 2011-07-15 09:09 5 drwx------ 68 jeroen jeroen 32768 2011-07-23 18:11 6 drwx------ 39 jeroen jeroen 32768 2011-01-23 15:47 7 -rwxr-xr-x 1 jeroen jeroen 430 2011-02-24 20:29 DeVliegendeBackup -rwxr-xr-x 1 jeroen jeroen 393 2011-07-23 18:20 DeVliegendeBackup.log
Waarbij:
- De eerste kolom het type object aangeeft. 'd' staat voor 'directory' en '-' voor een bestand;
- Drie groepen van drie letters (bv. rwxr-xr-x) die de rechten aangeven voor respectievelijk de eigenaar van het object, de leden van de betreffende groep, en de rest van de wereld;
- Het aantal directories dat een object bevat. Een directory bevat altijd minimaal twee subdirectories, want '.' en '..'. En blijkbaar telt een bestand ook als een directory (zoals op de laatste twee regels);
- Eigenaar (user) van het object;
- Groep waaraan het object is toegewezen;
- Grootte van het object;
- Datum en tijd waarop het object voor het laatst is gewijzigd;
- Naam van het object.
Ander voorbeeld (deel van de output):
ls -l lrwxrwxrwx 1 jeroen jeroen 45 dec 11 11:28 witches-diagrammen-zonder-marge -> witches-too-tools-diagrams-without-margin/ lrwxrwxrwx 1 jeroen jeroen 29 dec 17 15:06 witches-fotos-met-logo -> witches-too-tools-jpg-logo lrwxrwxrwx 1 jeroen jeroen 37 okt 23 11:46 witches-fotos-zonder-logo -> witches-too-tools-jpg-without-logo lrwxrwxrwx 1 jeroen jeroen 37 okt 23 11:46 witches-jpeg-zonder-logo -> witches-too-tools-jpg-without-logo lrwxrwxrwx 1 jeroen jeroen 41 dec 11 12:33 witches-voor-wasmachines -> witches-too-washing-machines-jpg-logo/
Hier zie je hoe symlinks worden weergegeven. Merk op dat sommige bestemmingen eindigen op /
, en anderen niet. Misschien is dat hoe de symlinks waren gedefineerd?
-h, --human-readable
Met bestandsgroottes in een leesbaar formaat (h
staat voor human):
ls -h
of in combinatie met -l:
ls -lh
-R, --recursive
Recursief:
ls -R
De inhoud van symlinks worden echter niet getoond.
Combinaties & aliassen
l
.bashrc
:
alias l="ls -CF"
-C
- "list entries by columns" - Geen idee. Ik zie geen verschil met gewoonls
-F
- Append indicator (one of */=>@|) to entries) - Waarschijnlijk handig bij filteren.
la
.bashrc
:
alias la="ls -A"
Als ls
, maar inclusief dot-files (behalve .
en ..
).
ll
.bashrc
:
alias ll="ls -lhA"
- lang format
- human-readable
- Inclusief dot-files, behalve
.
en..
.
Alleen aliassen weergeven
Dit lijkt niet direct te kunnen. Elegante indirecte oplossing:
ls -l | grep ^l
Boeiend dat je zo gemakkelijk een reguliere expressie kunt toepassen icm. grep
.
Argument list too long-error (juni 2019)
In een map met veel bestanden:
ls Koolborstels* bash: /bin/ls: Argument list too long
Zie Cp voor details.