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