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 :
- Si un fichier/dossier est créé/copié dans un dossier :
- Si un fichier/dossier est déplacé dans un dossier du même système de fichiers :
- Si un fichier/dossier est renommé dans un dossier :
- Si les permissions et propriétaires d’un fichier/dossier sont modifiés :
- Si le contenu d’un fichier est affiché (avec cat, head, tail, grep, sort, etc. par exemple) :
- Si le contenu d’un dossier est affiché (avec ls par exemple) :
- Si l’on se rend dans un dossier (avec cd par exemple) :
- 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 |
mtime dossier courant conservé | atime dossier courant conservé | ctime dossier courant conservé |
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 |
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 |
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 |
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 |
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.
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.
mtime dossier courant conservé | atime dossier courant conservé | ctime dossier courant conservé |
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