Chaque fois que je cd
dans un répertoire, la prochaine chose que je fais spontanément - lister le contenu de ce répertoire en utilisant ls
commande. Je ne sais pas si vous le faites tous, mais je suppose que certains d'entre vous pourraient avoir cette habitude. Ce serait mieux si nous combinions les fonctionnalités de cd et ls en une seule commande, n'est-ce pas ? Ce bref guide explique comment répertorier automatiquement le contenu du répertoire chaque fois que vous y accédez sous Linux.
Comment cd et ls en une seule commande dans Bash
Veuillez noter que je ne parle pas des commandes à une ligne. Par exemple, vous pouvez exécuter cd et ls avec une commande sur une seule ligne comme ci-dessous.
$ cd path-to-dir && ls
Ou,
$ cd path-to-dir ; ls
Oui, ça marche ! Mais ce n'est pas la portée de ce guide. Nous le ferons à l'aide d'une simple fonction BASH . Cette astuce fonctionnera dans toutes les distributions de type Linux et Unix prenant en charge BASH.
Ouvrez votre ~/.bashrc
fichier dans votre éditeur préféré :
$ nano ~/.bashrc
Ajoutez les lignes suivantes à la fin :
cdls() { local dir="$1" local dir="${dir:=$HOME}" if [[ -d "$dir" ]]; then cd "$dir" >/dev/null; ls --color=auto else echo "bash: cdls: $dir: Directory not found" fi }

Ici, j'ai utilisé le nom de la fonction comme cdls ()
pour une mémorisation facile ! Vous pouvez nommer cette fonction comme bon vous semble. Remplacez également ls --color=auto
paramètre avec le vôtre. Enregistrez et fermez le fichier.
Exécutez la commande suivante pour appliquer les modifications.
$ source ~/.bashrc
Maintenant, listez automatiquement le contenu du répertoire chaque fois que vous y accédez comme ci-dessous.
Exemple :
$ cdls /var/log/ alternatives.log btmp dpkg.log kern.log syslog wtmp apt cloud-init.log faillog landscape syslog.1 auth.log cloud-init-output.log installer lastlog tallylog bootstrap.log dist-upgrade journal lxd unattended-upgrades [email protected]:/var/log$ pwd /var/log

Vous pouvez également ajouter la fonction beaucoup plus simple suivante dans votre ~/.bashrc
fichier.
cdls() { cd "[email protected]" && ls; }
Sourcez le ~/.bashrc
fichier pour prendre en compte les modifications. N'utilisez pas non plus les deux fonctions en même temps avec le même nom. Utilisez une fonction ou utilisez un nom différent (par exemple, cdls
et cl
) pour chaque fonction.
Avant de connaître cette astuce, je faisais habituellement :
$ cd /var/log/
Et puis ;
$ ls
Ou,
$ cd /var/log/ && ls
Pas plus! Maintenant, je peux lister le contenu de n'importe quel répertoire chaque fois que j'y accède. C'est pratique lorsque vous travaillez souvent avec un grand nombre de répertoires.
Un inconvénient de cette astuce est que vous devrez attendre quelques secondes à plusieurs minutes lorsque cd dans un répertoire qui contient des centaines et des milliers de fichiers. Dans ce cas, utilisez le cd
normal commande.
Suggestion de lecture :
- Renommer les fichiers sans saisir deux fois le nom complet sous Linux
- Conseils Bash - Comment cp ou mv et cd en une seule commande
- Différentes façons de répertorier le contenu du répertoire sans utiliser la commande ls
- Une fonction Bash pour extraire des archives de fichiers de différents types