GNU/Linux >> Linux Esercitazione >  >> Linux

[Suggerimenti Bash] Come fare cd e ls in un comando

Ogni volta che cd in una directory, la prossima cosa che faccio spontaneamente:elencare il contenuto di quella directory usando ls comando. Non so se lo fate tutti, ma suppongo che alcuni di voi potrebbero avere questa abitudine. Sarebbe meglio se combiniamo le funzionalità di cd e ls in un comando, no? Questa breve guida spiega come elencare automaticamente il contenuto della directory ogni volta che ci metti cd in Linux.

Come eseguire cd e ls in un comando in Bash

Si prega di notare che non sto parlando dei comandi one-liner. Ad esempio, puoi eseguire cd e ls con un comando a riga singola come di seguito.

$ cd path-to-dir && ls

Oppure,

$ cd path-to-dir ; ls

Sì, funziona! Ma non è lo scopo di questa guida. Lo faremo con l'aiuto di una semplice funzione BASH . Questo trucco funzionerà in tutte le distribuzioni simili a Linux e Unix che supportano BASH.

Apri il tuo ~/.bashrc file nel tuo editor preferito:

$ nano ~/.bashrc

Aggiungi le seguenti righe alla fine:

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
}

Qui, ho usato il nome della funzione come cdls () per il bene del facile ricordo! Puoi nominare questa funzione come preferisci. Sostituisci anche ls --color=auto parametro con il tuo. Salva e chiudi il file.

Esegui il comando seguente per rendere effettive le modifiche.

$ source ~/.bashrc

Ora elenca automaticamente il contenuto della directory ogni volta che ci metti cd come di seguito.

Esempio:

$ 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

Puoi anche aggiungere la seguente funzione molto più semplice nel tuo ~/.bashrc file.

cdls() {
        cd "[email protected]" && ls;
}

Fonte il ~/.bashrc file per rendere effettive le modifiche. Inoltre, non utilizzare entrambe le funzioni contemporaneamente con lo stesso nome. Usa una funzione o usa un nome diverso (ad es. cdls e cl ) per ciascuna funzione.

Prima di conoscere questo trucco, di solito lo faccio:

$ cd /var/log/

E poi;

$ ls

Oppure,

$ cd /var/log/ && ls

Non più! Ora posso essere in grado di elencare qualsiasi contenuto di directory ogni volta che ci inserisco cd. Questo è utile quando lavori spesso con un gran numero di directory.

Uno svantaggio di questo trucco dovrai aspettare da pochi secondi a diversi minuti quando cd in una directory che contiene centinaia e migliaia di file. In questi casi, usa il normale cd comando.

Lettura consigliata:

  • Rinomina i file senza digitare il nome completo due volte in Linux
  • Suggerimenti Bash - Come eseguire cp o mv e cd in un comando
  • Modi diversi per elencare i contenuti della directory senza utilizzare il comando ls
  • Una funzione Bash per estrarre archivi di file di vario tipo

Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Che cos'è un comando cURL e come utilizzarlo?

  3. Come eliminare una directory e una cartella in Linux?

  4. Come bloccare e sbloccare l'utente in Linux

  5. Come funzionano le opzioni '-s', '-t' e '-c' del comando tr in Unix?

Come installare e utilizzare il comando Ping in Linux

Come usare il comando DD e come masterizzare ISO usandolo

Come installare e utilizzare il comando fd in Linux

Come elencare utenti e gruppi su Linux

Come trovare e sostituire il testo in Vim

Come installare e configurare Git su Ubuntu 20.04