Voici un script Bash qui permet de lister tous les dossiers et les fichiers d’un répertoire et de les afficher sous forme de table :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
# Récupérer le chemin du répertoire à lister (s'il n'est pas fourni en argument, utiliser le répertoire courant)
if [ -z "$1" ]; then
directory=$(pwd)
else
directory=$1
fi
# Récupérer la liste des dossiers et des fichiers du répertoire
files=$(ls -1 --group-directories-first $directory)
# Afficher les résultats à l'utilisateur sous forme de table
echo "Nom de fichier ou de dossier Type"
echo "--------------------------------- ----"
while read file; do
if [ -d "$directory/$file" ]; then
type="dossier"
else
type="fichier"
fi
printf "%-35s %s\n" "$file" "$type"
done <<< "$files"
Ce script utilise la commande ls
pour récupérer la liste des fichiers et des dossiers dans un répertoire donné, en les triant par ordre alphabétique et en plaçant les dossiers en premier. La commande printf
est utilisée pour afficher les résultats sous forme de table, en utilisant l’option -35s
pour aligner les noms de fichiers et de dossiers à gauche et l’option %s
pour afficher le type à droite.
Notez que ce script peut être exécuté en tant qu’utilisateur normal et ne nécessite pas de privilèges spéciaux.