GNU/Linux >> Tutoriales Linux >  >> Linux

[Consejos de Bash] Cómo cd y ls en un solo comando

Cada vez que cd en un directorio, lo siguiente que hago espontáneamente es listar el contenido de ese directorio usando ls dominio. No sé si todos ustedes hacen esto, pero supongo que algunos de ustedes pueden tener este hábito. Sería mejor si combinamos la funcionalidad de cd y ls en un solo comando, ¿no? Esta breve guía explica cómo enumerar los contenidos del directorio automáticamente cada vez que ingresa a él en Linux.

Cómo cd y ls en un comando en Bash

Tenga en cuenta que no estoy hablando de los comandos de una sola línea. Por ejemplo, puede ejecutar cd y ls con un comando de una sola línea como el siguiente.

$ cd path-to-dir && ls

O,

$ cd path-to-dir ; ls

¡Sí, funciona! Pero no es el alcance de esta guía. Lo haremos con la ayuda de una simple función BASH . Este truco funcionará en todas las distribuciones similares a Linux y Unix que admitan BASH.

Abre tu ~/.bashrc archivo en su editor favorito:

$ nano ~/.bashrc

Agregue las siguientes líneas al final:

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
}

Aquí, usé el nombre de la función como cdls () ¡por el bien de recordar fácilmente! Puede nombrar esta función como desee. También reemplaza ls --color=auto parámetro con el suyo propio. Guarde y cierre el archivo.

Ejecute el siguiente comando para aplicar los cambios.

$ source ~/.bashrc

Ahora enumere los contenidos del directorio automáticamente cada vez que ingrese a él como se muestra a continuación.

Ejemplo:

$ 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

También puede agregar la siguiente función mucho más simple en su ~/.bashrc archivo.

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

Obtenga el ~/.bashrc archivo para que surtan efecto los cambios. Tampoco use ambas funciones al mismo tiempo con el mismo nombre. Use una función o use un nombre diferente (por ejemplo, cdls y cl ) para cada función.

Antes de conocer este truco, suelo hacer:

$ cd /var/log/

Y entonces;

$ ls

O,

$ cd /var/log/ && ls

¡Ya no! Ahora puedo enumerar cualquier contenido del directorio siempre que ingrese a él. Esto es útil cuando trabaja con una gran cantidad de directorios a menudo.

Una desventaja de este truco es que tendrá que esperar de unos segundos a varios minutos cuando cd en un directorio que contiene cientos y miles de archivos. En tales casos, use el cd normal comando.

Lectura sugerida:

  • Renombrar archivos sin escribir el nombre completo dos veces en Linux
  • Consejos de Bash:cómo cp o mv y cd en un solo comando
  • Diferentes formas de listar contenidos de directorios sin usar el comando ls
  • Una función Bash para extraer archivos de varios tipos

Linux
  1. ¿Qué es un comando Chown en Linux y cómo usarlo?

  2. ¿Qué es un comando cURL y cómo usarlo?

  3. ¿Cómo eliminar un directorio y una carpeta en Linux?

  4. Cómo bloquear y desbloquear usuarios en Linux

  5. ¿Qué es el correo y cómo se navega?

Cómo instalar y usar el comando Ping en Linux

Cómo usar el comando DD y cómo grabar ISO usándolo

Cómo instalar y usar el comando fd en Linux

Cómo enumerar usuarios y grupos en Linux

Cómo encontrar y reemplazar texto en Vim

Cómo instalar y configurar Git en Ubuntu 20.04