Commandes Linux : ls

LS

Installé avec le paquet : coreutils
Voir aussi : grep, touch et stat

Rmq :
La commande ls, comme la plupart des commandes Shell, ne gère pas les expressions régulières (Regex), mais uniquement les wildcards (Shell Globbing).
Pour plus d’informations à ce sujet : The Linux Document Project – Wildcards and Regular Expressions, man 7 glob et man 7 regex

 

Afficher la version de la commande ls

ls --version

ou

apt-cache policy coreutils

 

Commandes synthétisant les besoins habituels

Liste (-l) exhaustive (-a) en ordre chronologique de dernière modification (-t) inversé (-r) du répertoire courant :

ls -latr

ex :

# ls -latr
total 24
-rw-r--r--  1 root     root        0 nov.  22 11:05 file3.txt
-rw-r--r--  1 root     root        0 nov.  22 11:05 file2.txt
-rw-r--r--  1 root     root        0 nov.  22 11:05 file1.txt
drwxr-xr-x 24 adminsys adminsys 4096 nov.  22 11:16 ..
-rwxr--r--  1 root     root       16 nov.  22 12:47 file.sh
-rwxr--r--  1 root     root       28 nov.  22 12:48 file.py
drwxr-xr-x  2 root     root     4096 nov.  22 12:49 dir1
drwxr-xr-x  2 root     root     4096 nov.  22 12:49 dir2
drwxr-xrwx  4 root     root     4096 nov.  22 12:49 .

Liste (-l) exhaustive sans le répertoire courant (.) et le répertoire parent (..) (-A) en ordre chronologique de dernière modification (-t) inversé (-r) du répertoire courant :

ls -lAtr

ex :

# ls -lAtr
total 16
-rw-r--r-- 1 root root    0 nov.  22 11:05 file3.txt
-rw-r--r-- 1 root root    0 nov.  22 11:05 file2.txt
-rw-r--r-- 1 root root    0 nov.  22 11:05 file1.txt
-rwxr--r-- 1 root root   16 nov.  22 12:47 file.sh
-rwxr--r-- 1 root root   28 nov.  22 12:48 file.py
drwxr-xr-x 2 root root 4096 nov.  22 12:49 dir1
drwxr-xr-x 2 root root 4096 nov.  22 12:49 dir2

Liste (-l) exhaustive sans le répertoire courant (.) et le répertoire parent (..) (-A) en ordre chronologique de dernière modification (-t) inversé (-r) du répertoire courant avec affichage de symboles identifiant les éléments (-F) et en couleur (--color=auto) :

ls -lAtrF --color=auto

ex :

# ls -lAtrF --color=auto
total 16
-rw-r--r-- 1 root root    0 nov.  22 11:05 file3.txt
-rw-r--r-- 1 root root    0 nov.  22 11:05 file2.txt
-rw-r--r-- 1 root root    0 nov.  22 11:05 file1.txt
-rwxr--r-- 1 root root   16 nov.  22 12:47 file.sh*
-rwxr--r-- 1 root root   28 nov.  22 12:48 file.py*
drwxr-xr-x 2 root root 4096 nov.  22 12:49 dir1/
drwxr-xr-x 2 root root 4096 nov.  22 12:49 dir2/

 

Afficher le contenu d’un répertoire

Le résultat sera basique et sur une ou plusieurs lignes.

Le répertoire courant
ls

ou

ls .

ou

ls ./
Un répertoire spécifique
ls directory

 

Afficher le contenu d’un répertoire sous forme de liste simple

ls -1 directory

 

Afficher le contenu d’un répertoire en colonnes

ls -C directory

 

Afficher le contenu d’un répertoire sous forme de liste détaillée

ls -l directory

L’option -1 (chiffre 1), permettant d’afficher le contenu sur une seule colonne, est implicite avec l’option -l (lettre L minuscule).

 

Afficher le contenu d’un répertoire sous forme de liste détaillée en incluant les fichiers cachés

ls -la directory

 

Afficher le contenu d’un répertoire sous forme de liste détaillée en incluant les fichiers cachés mais en excluant . et ..

ls -lA directory

 

Afficher l’heure et la date avec le maximum de précision

ls --full-time

L’option -lA est implicite avec cette option.
ex :

# ls --full-time
total 16
drwxr-xr-x 2 root root 4096 2016-11-22 12:49:07.100324062 +0100 dir1
drwxr-xr-x 2 root root 4096 2016-11-22 12:49:08.592324062 +0100 dir2
-rw-r--r-- 1 root root    0 2016-11-22 11:05:39.700466042 +0100 file1.txt
-rw-r--r-- 1 root root    0 2016-11-22 11:05:39.700466042 +0100 file2.txt
-rw-r--r-- 1 root root    0 2016-11-22 11:05:39.700466042 +0100 file3.txt
-rwxr--r-- 1 root root   28 2016-11-22 12:48:19.868324062 +0100 file.py
-rwxr--r-- 1 root root   16 2016-11-22 12:47:31.700324062 +0100 file.sh

 

Affichage des éléments en lignes et séparés par des virgules

ls -m

Par défaut, les éléments sont affichés en lignes mais séparés par 2 espaces. Avec l’option -m, ils sont séparés par une virgule suivie d’un espace.

# ls
dir1  dir2  file1.txt  file2.txt  file3.txt  file.py  file.sh
# ls -m
dir1, dir2, file1.txt, file2.txt, file3.txt, file.py, file.sh

 

Trier les éléments par date du plus récent au plus ancien

Par date de dernière modification : mtime
ls -lt directory
Par date de dernier accès : atime
ls -ltu directory

ou

ls -lt --time=atime directory
Par date de dernier changement de statut : ctime
ls -ltc directory

ou

ls -lt --time=ctime directory

Rmq : Pour la modification manuelle des heures atime, ctime et mtime, voir la commande touch.

Notes relatives aux mtime atime et ctime (cas de figure)
  • Si un fichier/dossier est modifié dans un dossier :
  • mtime fichier/dossier mis à jour atime fichier/dossier mis à jour ctime fichier/dossier mis à jour
    mtime dossier courant conservé atime dossier courant conservé ctime dossier courant conservé
  • Si un fichier/dossier est créé/copié dans un dossier :
  • mtime fichier/dossier (copie) mis à jour atime fichier/dossier (copie) mis à jour ctime fichier/dossier (copie) mis à jour
    mtime dossier courant mis à jour atime dossier courant conservé ctime dossier courant mis à jour
  • Si un fichier/dossier est déplacé dans un dossier du même système de fichiers :
  • mtime fichier/dossier conservé atime fichier/dossier conservé ctime fichier/dossier mis à jour
    mtime dossier source mis à jour atime dossier source conservé ctime dossier source mis à jour
    mtime dossier destination mis à jour atime dossier destination conservé ctime dossier destination mis à jour
  • Si un fichier/dossier est renommé dans un dossier :
  • mtime fichier/dossier conservé atime fichier/dossier conservé ctime fichier/dossier mis à jour
    mtime dossier courant mis à jour atime dossier courant conservé ctime dossier courant mis à jour
  • Si les permissions et propriétaires d’un fichier/dossier sont modifiés :
  • mtime fichier/dossier conservé atime fichier/dossier conservé ctime fichier/dossier mis à jour
    mtime dossier courant conservé atime dossier courant conservé ctime dossier courant mis à jour
  • Si le contenu d’un fichier est affiché (avec cat, head, tail, grep, sort, etc. par exemple) :
  • mtime fichier conservé atime fichier mis à jour ctime fichier conservé
    mtime dossier courant conservé atime dossier courant mis à jour ctime dossier courant conservé

    Rmq : Le atime du répertoire courant est mis à jour seulement si un nouveau fichier a été affiché via cat par exemple.

  • Si le contenu d’un dossier est affiché (avec ls par exemple) :
  • mtime dossier courant conservé atime dossier courant mis à jour ctime dossier courant conservé

    Rmq : Le atime du répertoire courant est mis à jour seulement si un nouveau fichier a été ajouté et que son contenu est affiché via ls.

  • Si l’on se rend dans un dossier (avec cd par exemple) :
  • mtime dossier courant conservé atime dossier courant conservé ctime dossier courant conservé
  • Si un fichier/dossier déplacé sur un nouveau système de fichiers :
  • mtime fichier/dossier mis à jour atime fichier/dossier mis à jour ctime fichier/dossier mis à jour

 

Lister les fichiers par tailles en mode inversé

ls -lSr directory

La liste est affichée par ordre de tailles des fichiers(en octets), du moins lourd, en haut, au plus lourd, en bas.

 

Lister les fichiers par tailles human-readables en mode inversé

ls -lSrh directory

La liste est affichée par ordre de tailles des fichiers (en octets et ses multiples), du moins lourd, en haut, au plus lourd, en bas.

 

Lister les fichiers d’un répertoire en affichant leur inode

ls -i directory

 

Lister seulement les fichier ou seulement les dossiers

Seulement les fichiers
Liste simple
ls -1p | grep -v /
# ls -1p | grep -v /
file1.txt
file2.txt
file3.txt
file.py
file.sh
Liste détaillée
# ls -lp | grep -v /

(le total est affiché)
ou

# ls -lp | grep ^-

(le total n’est pas affiché)
ex :

# ls -lp | grep -v /
total 12304
-rw-r--r-- 1 root root 2097152 nov.  22 13:21 file1.txt
-rw-r--r-- 1 root root 4194304 nov.  22 13:21 file2.txt
-rw-r--r-- 1 root root 6291456 nov.  22 13:22 file3.txt
-rwxr--r-- 1 root root      28 nov.  22 12:48 file.py
-rwxr--r-- 1 root root      24 nov.   6 14:00 file.sh
Seulement les dossiers
Liste simple
ls -1d */

ou

ls -1p | grep /

ex :

# ls -1d */
dir1/
dir2/
Liste détaillée
ls -ld */

(le total n’est pas affiché)
ou

ls -lp | grep /

(le total n’est pas affiché)
ex :

# ls -ld /*
drwxr-xr-x 2 root root 4096 nov.  22 12:49 dir1/
drwxr-xr-x 2 root root 4096 nov.  22 12:49 dir2/
Les fichiers et les dossiers
Liste simple
ls -1p

ex :

# ls -1p
dir1/
dir2/
file1.txt
file2.txt
file3.txt
file.py
file.sh
Liste détaillée
ls -lp

(le total est affiché)
ou

ls -lp | grep -v total

(le total n’est pas affiché)
ex :

# ls -lp
total 12304
drwxr-xr-x 2 root root    4096 nov.  22 12:49 dir1/
drwxr-xr-x 2 root root    4096 nov.  22 12:49 dir2/
-rw-r--r-- 1 root root 2097152 nov.  22 13:21 file1.txt
-rw-r--r-- 1 root root 4194304 nov.  22 13:21 file2.txt
-rw-r--r-- 1 root root 6291456 nov.  22 13:22 file3.txt
-rwxr--r-- 1 root root      28 nov.  22 12:48 file.py
-rwxr--r-- 1 root root      24 nov.   6 14:00 file.sh

 

Liste récursive du contenu d’un dossier

ls -R dossier

ex :

# ls -R reptest/
reptest/:
dir1  dir2  file1.txt  file2.txt  file3.txt

reptest/dir1:
file.py

reptest/dir2:
file.sh

 

Trier les fichiers du répertoire courant par taille

ls -lh | sort -k 5 -h
Fermer le menu
%d blogueurs aiment cette page :