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