GNU/Linux >> LINUX-Kenntnisse >  >> Linux

[Bash-Tipps] How To cd und ls in einem Befehl

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

Linux
  1. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  2. Was ist ein cURL-Befehl und wie wird er verwendet?

  3. Wie lösche ich ein Verzeichnis und einen Ordner in Linux?

  4. Wie funktionieren die Optionen „-s“, „-t“ und „-c“ des tr-Befehls in Unix?

  5. Was ist E-Mail und wie wird darin navigiert?

So installieren und verwenden Sie den Ping-Befehl unter Linux

Wie man den DD-Befehl verwendet und wie man ISO damit brennt

So installieren und verwenden Sie den fd-Befehl unter Linux

So listen Sie Benutzer und Gruppen unter Linux auf

So finden und ersetzen Sie Text in Vim

So installieren und konfigurieren Sie Git unter Ubuntu 20.04