Usar la salida de un comando de linux como parámetro de otro comando como: ls, cd, etc

publicado por: Anonymous

A veces tengo que localizar algún directorio, utilizo por ejemplo which phpstorm para saber dónde está instalado el ejecutable de ese programa.

Ahora quiero navegar al directorio donde se encuentra el ejecutable usando por ejemplo cd, o ls para ver el contenido completo del directorio.

¿Hay alguna manera sencilla para recuperar o usar la salida del primer comando para poder utilizarla en el segundo sin tener que teclear todo?

solución

Lo que quieres hacer es coger el resultado de un comando y aplicarlo a otro. En tal caso, lo útil es coger este comando y ejecutarlo con $( ), aplicando luego ese valor en el comando que quieras:

ls "$(which otro_programa)"

cd "$(which lo_que_sea)"

Internamente, lo que esto hará es:

ls "$(which otro_programa)"  # → ejecuta el `which`
ls "resultado"               # → aplica el resultado a `ls`

Más generalmente, UNIX funciona con la idea de las pipes, que sirven para concatenar comandos de manera que lo que dice uno se lo pasa al otro y así sucesivamente.

Ello nos permite por ejemplo tener una serie de pequeñas aplicaciones haciendo entre todas una tarea compleja:

sort fichero | tr -s ' ' | grep "hola"

Esto ordenaría un fichero, eliminaría los espacios de más y luego buscaría las líneas en que aparece “hola”.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *