Ls: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
 
(20 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
Commando ''ls'' toont de inhoud van een directory. Bv.:
+
The Bash command <code>ls</code> (from ''list'') displays the content of a folder - It's probably one of the most-used Bash commands. E.g.:
  
  totaal 384
+
<pre>
drwx------ 49 jeroen jeroen 32768 2011-07-18 08:37 1
+
ls /
drwx------ 48 jeroen jeroen 32768 2011-07-19 08:22 2
+
 
drwx------ 52 jeroen jeroen 32768 2011-07-06 08:51 3
+
bin  dev  home        initrd.img.old  lib64      media  opt  root  sbin  srv      sys  usr  vmlinuz
drwx------ 48 jeroen jeroen 32768 2011-07-21 08:07 4
+
boot  etc  initrd.img  lib            lost+found  mnt    proc  run  snap  swapfile  tmp  var vmlinuz.old
drwx------ 48 jeroen jeroen 32768 2011-07-15 09:09 5
+
</pre>
drwx------ 68 jeroen jeroen 32768 2011-07-23 18:11 6
+
 
drwx------ 39 jeroen jeroen 32768 2011-01-23 15:47 7
+
== Use cases ==
-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
+
=== Limit output to only 1 column ===
 +
 
 +
By default, the output of <code>ls</code> 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 <code>ls</code> to a file): <code>ls -1</code>. E.g.:
 +
 
 +
<pre>
 +
$ 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
 +
</pre>
 +
 
 +
== Switches ==
 +
 
 +
Gewoon, zonder switches - toon directory:
 +
<pre>ls</pre>
 +
 
 +
=== -a, --all ===
 +
 
 +
Inclusief dot-files (ook <code>.</code> en <code>..</code>):
 +
 
 +
<pre>
 +
ls -a
 +
</pre>
 +
 
 +
=== -A, --almost-all ===
 +
 
 +
Inclusief dot-files, behalve <code>.</code> en <code>..</code>:
 +
 
 +
<pre>
 +
ls -A
 +
</pre>
 +
 
 +
=== -C ===
 +
 
 +
Wordt toegepast in .bashrc-alias <code>l</code>. Ik zie geen verschil.
 +
 
 +
=== -F, --classify ===
 +
 
 +
* Append indicator (one of */=>@|) to entries
 +
* Misschien handig voor filteren e.d.?
 +
 
 +
=== -long ===
 +
 
 +
Inclusief details:
 +
<pre> ls -long </pre>
 +
 
 +
=== -l ===
 +
 
 +
''Long listing-format'' - Nog meer informatie dan met <code>-long</code>. Er is geen synoniem met <code>--</code> voor deze switch.
 +
 
 +
<pre> ls -l</pre>
 +
 
 +
Voorbeeld:
 +
 
 +
<pre>
 +
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
 +
</pre>
  
 
Waarbij:
 
Waarbij:
Regel 23: Regel 109:
 
* Naam van het object.
 
* Naam van het object.
  
== Aliassen (.bashrc) ==
+
Ander voorbeeld (deel van de output):
 +
 
 +
<pre>
 +
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/
 +
</pre>
 +
 
 +
Hier zie je hoe symlinks worden weergegeven. Merk op dat sommige bestemmingen eindigen op <code>/</code>, en anderen niet. Misschien is dat hoe de symlinks waren gedefineerd?
 +
 
 +
=== -h, --human-readable ===
 +
 
 +
Met bestandsgroottes in een leesbaar formaat (<code>h</code> staat voor ''human''):
 +
 
 +
<pre>
 +
ls -h
 +
</pre>
 +
 
 +
of in combinatie met </code>-l</code>:
 +
 
 +
<pre>
 +
ls -lh
 +
</pre>
 +
 
 +
=== -R, --recursive ===
 +
 
 +
Recursief:
 +
 
 +
<pre>
 +
ls -R
 +
</pre>
 +
 
 +
De inhoud van symlinks worden echter niet getoond.
 +
 
 +
== Combinaties & aliassen ==
 +
 
 +
=== l ===
 +
 
 +
<code>.bashrc</code>:
 +
 
 +
<pre>
 +
alias l="ls -CF"
 +
</pre>
 +
 
 +
* <code>-C</code> - "list entries by columns" - Geen idee. Ik zie geen verschil met gewoon <code>ls</code>
 +
* <code>-F</code> - Append indicator (one of */=>@|) to entries) - Waarschijnlijk handig bij filteren.
 +
 
 +
=== la ===
 +
 
 +
<code>.bashrc</code>:
 +
 
 +
<pre>
 +
alias la="ls -A"
 +
</pre>
 +
 
 +
Als <code>ls</code>, maar inclusief dot-files (behalve <code>.</code> en <code>..</code>).
 +
 
 +
=== ll ===
  
alias ll="ls -lhA" # Details + leesbare bestandsgrootte
+
<code>.bashrc</code>:
  
== Switches ==
+
<pre>
 +
alias ll="ls -lhA"
 +
</pre>
 +
 
 +
* lang format
 +
* human-readable
 +
* Inclusief dot-files, behalve <code>.</code> en <code>..</code>.
 +
 
 +
=== Alleen aliassen weergeven ===
 +
 
 +
Dit lijkt niet direct te kunnen. Elegante indirecte oplossing:
  
Toon directory:
+
<pre>
<pre>ls</pre>
+
ls -l | grep ^l
 +
</pre>
  
Inclusief dot-files:
+
Boeiend dat je zo gemakkelijk een reguliere expressie kunt toepassen icm. <code>grep</code>.
  
<pre> ls -a </pre>
+
== Argument list too long-error (juni 2019) ==
  
Inclusief details:
+
In een map met veel bestanden:
  
<pre> ls -long </pre>
+
<pre>
Nog langer, nu inclusief
+
ls Koolborstels*
<pre> ls -l</pre>
 
  
Met bestandsgroottes in een leesbaar formaat:
+
bash: /bin/ls: Argument list too long
 +
</pre>
  
ls -lh
+
Zie [[Cp]] voor details.
  
 
== Bronnen ==
 
== Bronnen ==
  
 
* http://stackoverflow.com/questions/15854332/file-size-in-human-readable-format
 
* http://stackoverflow.com/questions/15854332/file-size-in-human-readable-format

Huidige versie van 5 okt 2023 om 11:46

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 gewoon ls
  • -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.

Bronnen