Ejecutar Finder desde Terminal en MacOS X
por dGil el 31/12/2008, en MacOS X, Programación, Python
Una de las cosas que mas me molestó cuando migré a MacOS X hace ya algunos años es que a diferencia de otros sistemas operativos, como GNU/Linux con GNOME, no pudiera ejecutar el gestor de archivos (Finder) desde la consola. Hasta hoy, nunca me preocupé de buscar una solución, pero hoy me harté e intenté solucionarlo.
Para ello he creado un pequeño programa en Python que nos permite ejecutar desde la Terminal el Finder.
Sobre el programa
El programa es el siguiente y lo podéis descargar aquí: finderv01.zip
El programa está liberado bajo la GPLv3. El código es el siguiente:
#!/usr/bin/python # # Autor: Gil Casadevall # Website: http://defcrypt.ixde.net # Relased: 12/31/08 # Version: 0.1 # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as published # by the Free Software Foundation (GPLv3) or later. It is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See http://www.gnu.org/licenses/quick-guide-gplv3.html for more details. import sys import subprocess if(len(sys.argv) > 1): choice = sys.argv[1] if choice == "now": subprocess.call("open /System/Library/CoreServices/Finder.app $PWD",shell=True) elif choice == "home": subprocess.call("open /System/Library/CoreServices/Finder.app $HOME",shell=True) else: subprocess.call("open /System/Library/CoreServices/Finder.app "+sys.argv[1],shell=True) else: subprocess.call("open /System/Library/CoreServices/Finder.app",shell=True)
Instalación
Para instalarlo sigue los siguientes pasos:
# Suponiendo que estamos en el directorio dónde hemos descargado el zip # Descomprimimos $ unzip finder.zip # Damos permisos de ejecución $ chmod +x finder.py # podemos ejecutalo con la siguiente instrucción $ ./finder
Bueno, ahora ya podemos lanzar el Finder desde la Terminal, eso está muy bien. Pero lo que nos interesa es poder lanzarlo desde cualquier directorio y no especificando la ruta del programa. Para eso, tenemos que instalarlo en el PATH. Podemos consultar con la siguiente instrucción que directorios tenemos en el PATH:
$ env | grep ^PATH
Comprobamos que /usr/bin/local está ahí. Sino, podéis incluir la dirección en el archivo .profile o .bash_profile en vuestro directorio home, o escoger otro directorio en el siguiente apartado.
Para instalar el programa en el path, hacemos lo siguiente:
mv finder.py /usr/local/bin cd /usr/local/bin ln -s finder.py finder
¿Qué hemos hecho? Bueno, primero lo hemos copiado en el PATH, y luego hemos añadido un enlace simbólico para poder lanzar el Finder con la instrucción ‘finder’ y no ‘finder.py’ (ambas funcionan). Simplemente es para mayor comodidad.
Cómo funciona
Como habéis podido observar en el código, no hace muchas cosas, pero lo explicaremos por si alguien tiene dudas.
Si tecleamos ‘finder’ en el Terminal podemos pasar como argumento:
# sin argumentos: se abrirá el finder en el directorio por defecto (en principio home) $ finder # con el argumento home: se abrirá el finder en el directorio home $ finder home # con el argumento now: se abrirá el finder en el directorio dónde nos encontramos $ finder now # con el argumento "directorio": se lanzara el finder abriendo el "directorio" $ finder /Volumes
Si introducimos un directorio incorrecto, el programa retornará un error de que el directorio no existe.
Si alguien detecta algún error, o sugiere nuevas ideas, estaré encantado de corregir o implementarlas.
07/01/2009 a las 11:23 pm
Bueno, yo suelo usar una solución más simple: usar el comando open para abrir una carpeta lanza el Finder, y abre una ventana con esa carpeta (si no existe):
El comando anterior abriría una nueva ventana del Finder con el contenido de /System/Library
Otra un poquito más “elaborada”: usar el comando osascript para abrir (o cerrar) el Finder:
08/01/2009 a las 12:03 am
Muy cierto, no hace falta llamar al script del finder. Aun así lo hice para que pudiera hacer “un poco más”, como la opción del ‘now’, que es lo mas cómodo. De todas formas, era una prueba para poder -si un día quiero hacerlo- un script para lanzar cualquier aplicación a través de la Terminal sin tener que especificar toda la ruta.
Saludos y gracias por el aporte!
11/01/2009 a las 10:24 pm
‘finder now’ ?
‘open .’ !
Y, si estais aburridos, probad ‘open -na Finder’
–