Immer wenn ich cd
in ein Verzeichnis, das nächste, was ich spontan mache - den Inhalt dieses Verzeichnisses mit ls
auflisten Befehl. Ich weiß nicht, ob Sie das alle tun, aber ich schätze, einige von Ihnen haben diese Angewohnheit. Es wäre besser, wenn wir die Funktionalität von cd und ls in einem Befehl kombinieren, oder? Diese kurze Anleitung erklärt, wie man Verzeichnisinhalte automatisch auflistet, wenn man in Linux hinein cd.
Wie man cd und ls in einem Befehl in Bash erstellt
Bitte beachten Sie, dass ich nicht über die Einzeiler-Befehle spreche. Zum Beispiel können Sie cd und ls mit einem einzeiligen Befehl wie unten ausführen.
$ cd path-to-dir && ls
Oder,
$ cd path-to-dir ; ls
Ja, es funktioniert! Dies ist jedoch nicht Gegenstand dieses Leitfadens. Wir machen das mit Hilfe einer einfachen BASH-Funktion . Dieser Trick funktioniert in allen Linux- und Unix-ähnlichen Distributionen, die BASH unterstützen.
Öffnen Sie Ihre ~/.bashrc
Datei in Ihrem bevorzugten Editor:
$ nano ~/.bashrc
Fügen Sie am Ende die folgenden Zeilen hinzu:
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 }

Hier habe ich den Funktionsnamen als cdls ()
verwendet der leichten Erinnerung zuliebe! Sie können diese Funktion beliebig benennen. Ersetzen Sie auch ls --color=auto
Parameter mit Ihren eigenen. Speichern und schließen Sie die Datei.
Führen Sie den folgenden Befehl aus, um die Änderungen zu übernehmen.
$ source ~/.bashrc
Listen Sie jetzt den Inhalt des Verzeichnisses automatisch auf, wann immer Sie hinein cd, wie unten.
Beispiel:
$ 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

Sie können auch die folgende viel einfachere Funktion in Ihre ~/.bashrc
einfügen Datei.
cdls() { cd "[email protected]" && ls; }
Quelle ~/.bashrc
Datei, um die Änderungen zu übernehmen. Verwenden Sie auch nicht beide Funktionen gleichzeitig mit demselben Namen. Verwenden Sie entweder eine Funktion oder einen anderen Namen (z. B. cdls
und cl
) für jede Funktion.
Bevor ich diesen Trick kannte, mache ich normalerweise:
$ cd /var/log/
Und dann;
$ ls
Oder,
$ cd /var/log/ && ls
Nicht mehr! Jetzt kann ich jeden Verzeichnisinhalt auflisten, wenn ich hinein cd. Dies ist praktisch, wenn Sie häufig mit einer großen Anzahl von Verzeichnissen arbeiten.
Ein Nachteil Einer dieser Tricks ist, dass Sie einige Sekunden bis mehrere Minuten warten müssen, wenn Sie in ein Verzeichnis wechseln, das Hunderte und Tausende von Dateien enthält. Verwenden Sie in solchen Fällen das normale cd
Befehl.
Empfohlene Lektüre:
- Dateien umbenennen, ohne zweimal den vollständigen Namen in Linux einzugeben
- Bash-Tipps - Wie cp oder mv und cd in einem Befehl ausgeführt werden
- Verschiedene Methoden zum Auflisten von Verzeichnisinhalten ohne Verwendung des Befehls ls
- Eine Bash-Funktion zum Extrahieren von Dateiarchiven verschiedener Typen