Tip extremadamente útil si usas la terminal (Unir comando CD con LS … y muchos más)

Nota: El viernes dos de nuestra comunidad (el Mor3no y Koratsuki/Leslie) pensaron que este tip era realmente útil y/o interesante, por eso lo comparto acá con ustedes 😀

Soy de los que usa gran parte del tiempo la terminal (consola, bash, shell, como quieran llamarle), por X o Y motivos tengo que estar constantemente cambiando de directorio, trabajando en ella 🙂

En la gran mayoría de los casos, cambio de directorio (Por ejemplo: cd /opt/) y además deseo saber qué se encuentra en ese directorio, para saber esto segundo hago uso de ls.

O sea, sería así:

kzkggaara@geass:~$ cd /opt/
kzkggaara@geass:/opt/$
kzkggaara@geass:/opt/$ ls
nessus

Muchas veces lo he dicho… soy bastante vago, me gusta hacer la menor cantidad de pasos en terminal, por eso es que luego de bastante experimentar, he logrado justo lo que quería.

Vean lo siguiente, que no es más que yo entrando a /opt/ con el simple comando cd /opt/:

Como pueden ver, en un solo paso (cd /opt/) entro al directorio y ADEMÁS me lista el contenido de ese directorio, y… por si fuera poco, me lo muestra con colores 😀

Aquí el ejemplo de yo accediendo a /etc/ con cd /etc/ :


Los colores son simples de entender:

Sin color = Archivos
Color azul = Carpetas
Color verde = Archivos con permisos de ejecución

Pero, pasemos a lo principal… ¿cómo demonios usando solamente cd puedo además automáticamente listar el directorio al que accedo?

Nuestro archivo .bashrc (ubicado en nuestro home o carpeta personal) nos ayudará a hacer esto, primero debemos declarar una función, a la que llamaremos cdls:

function cdls { cd «$1»; ls –color;}

Esta línea la ponemos en cualquier lado de nuestro .bashrc … aquí les dejo el comando para hacerlo:

echo "" >> $HOME/.bashrc && echo "function cdls { cd "$1"; ls --color;}" >> $HOME/.bashrc

NO necesariamente tienen que hacerlo con este comando, el objetivo es que el archivo .bashrc contenga esta línea, así que simplemente editen este archivo con su editor de texto preferido (mousepad, kate, gedit, nano, vi, etc) y la agregan.
Guardan el cambio, cierran la terminal que tengan abierta y abren una nueva.

En ella escribiremos lo siguiente y presionamos [Enter]:

cdls $HOME

Esto deberá bastar para acceder a nuestra carpeta personal en esa terminal, y además nos listará el contenido de ella (con colores y todo).

O sea, que cdls ya hace lo que queremos… ahora solo nos queda lograr lo mismo pero con cd

Para esto, agregamos en el archivo .bashrc la siguiente línea:

alias cd='cdls'

Esto hará que cuando escribamos cd … en realidad se ejecutará la acción que definimos para cdls

Les dejo el comando que pondrá automáticamente esta línea anterior:

echo "" >> $HOME/.bashrc && echo "alias cd='cdls'" >> $HOME/.bashrc

Pero igual como les dije antes, el objetivo es agregar esta otra línea el mismo archivo, pueden usar el editor de texto de su preferencia para ello.

Una vez hecho esto, cierren la terminal y abran una nueva… en ella escriban lo siguiente y presionen [Enter]:

cd /etc/

Y bingo, entrarán a /etc/ y además se les listará el contenido de esta carpeta, y con colores 😉 (justo como en una foto anterior)

¿A que es útil? 😀

Para los curiosos que se preguntan ¿qué significa esa función? … les dejo la simple explicación:

function cdls = Aquí definimos que estamos creando una nueva función, y se llamará cdls
cd «$1» = Y esta función lo que hará (hará cada vez que la llamemos, usemos o ejecutemos) será hacer un cd (entrar) hacia el 1er parámetro, o sea… -» «cd /home/», el «$1» significa «lo que escribamos luego de cd», en este ejemplo el 1er parámetro es «/home/».
; = Esto significa que ahí termina esa orden, o acción a ejecutar… pero una función puede tener más acciones a hacer, y le definiremos una segunda ahora.
ls –color; = Significa que además de cualquier acción declarada antes, también hará un «ls» en donde estemos ubicados, y el «ls» lo hará con color (–color).

Ultima cosa… los más listos, se darán cuenta que esta lógica (tomar una función y configurarla para que ejecute varias acciones) tiene mucho pero mucho potencial, por ejemplo… si quiero entrar a una carpeta, y además borrar otra, o sea, quiero entrar a /home/ y además borrar /opt/temp/ la función para ello sería:

function asdasd { cd "$1"; rm -Rv "$2"; }

Y escribiendo en una terminal asdasd /home/ /opt/test/ lo haría, porque entrará al 1er parámetro (/home/) y borrará el segundo (/opt/temp/).

En fin, de veras esto tiene MUCHO potencial jeje, queda por parte de ustedes aprovecharlo lo más que puedan.

Si tienen alguna duda o pregunta, queja o sugerencia con mucho gusto les echo una mano, no soy ni de lejos un experto pero al menos me gusta ayudar 😀

Saludos

Fuente: DesdeLinux.net

¿Te resultó interesante? Compártelo ...



KZKG^Gaara

Publicado por KZKG^Gaara

http://desdelinux.net » Forma parte de GUTL desde el 6 diciembre, 2011. Usuario de GNU/Linux desde hace varios años, eterno enamorado de la terminal y las posibilidades que nos brinda,siempre pensando que el error está entre el ordenador y la silla. Usuario y defensor de KDE por convicción, de Debian por el equilibrio que me brinda. Siempre estoy en /bin/bash detrás de mi Geass.

Este artículo tiene 10 comentarios

    • Gracias, la verdad el ejemplo que puse para hacer el post (y explicarlo) no es el más «cool» de todos… pero, la lógica que es lo importante espero que se entienda.

  1. Comprendo con claridad todo el post, es una de las cosas que me gusta hacer y bueno aunque ahora no puedo probarlo porque estoy de vacaciones, aquí en Cienfuegos, cuando llegue a la pincha en Septiembre, allá en Matanzas lo probaré y es muy cierto que es útil, nos da una idea incluso para declarar nuevas funciones, no necesariamente tiene que ser cdls, pudiera ser alguna otra que encontremos de utilidad. Me gusta este sitio, gracias a ustedes que hacen que sea algo bueno para leer, instructivo y ameno, 🙂 buen trabajo amigos!

    PD: Estoy en un JovenClub, de ahí mi useragent… saben bien que recientemente usaba Konqueror – Rekonq…

    cya! 🙂

  2. Muy bién dicha explicación, a veces uno postea al en la red y aparecen cientos de personajes que se quedan totalmente en las nubes y al final no entienden nada de nada, saludos a todos lo de la comunidad…

  3. Alguien que por favor me ayude, necesito la listar todos los ficheros de un directorio más o menos de esta manera, usando este comando:

    ls *.*|cut -d’.’ -f1

    Esto lo que hace es listar todos los ficheros y me los muestra pero sin extensión.
    Hasta ahí todo bien pero ademas de eso necesito que en la salida de ese comando me sustituya los espacios libres por el signo \ seguido del espacio, como podría utilizar una tubería que me mostrase la salida de dicha manera, eso me hace falta para un pequeño Script que hice para convertir todos los vídeos de un directorio.

    Estos son los archivos que están el directorio:

    Maroon 5 – Give a Little More.mp3
    Maroon 5 – Misery.mp3
    Maroon 5 – She Will Be Loved.mp3
    Maroon 5 – This Love.mp3

    Al listarlos de esa manera me devuelve esto:

    Maroon 5 – Give a Little More
    Maroon 5 – Misery
    Maroon 5 – She Will Be Loved
    Maroon 5 – This Love

    Pero lo que deseo es que me devuelva esto:

    Maroon\ 5\ -\ Give\ a\ Little\ More\
    Maroon\ 5\ -\ Misery\
    Maroon\ 5\ -\ She\ Will\ Be\ Loved
    Maroon\ 5\ -\ This\ Love

    Si alguien me pudiese tirar una mano con eso, la verdad es que me hace mucha falta una solución al respecto.

  4. hola…

    estoy utilizando linux slacko, la consola viene por defecto en blanco, que fichero con determinado parametro debo editar para que la consola sea el standart… es decir en negra..

    please si alguien tiene la solucion

    contactarme a este e-mail
    burquet@fcmb.grm.sld.cu

    saludos cordiales

  5. Colega necesito una pequeña ayuda tuya o que me digas quien me puede ayudar con esperiencia en el tema hace tiempo que queria intalar linux, en los lugares en que e trabajado no habia tenido la oportunidad, ahora tengo la oportunidad me regalaron una lapto, donde puedo conseguir las herramientas por ejemplo las que se utilizan para el doble boot tengo W/Seven intalado y quiero tener los dos hasta que me adacte o conosca mejor a linux.
    saludos

Los comentarios están cerrados.