¿Puede FinFinder y el command "abrir" tratar los files con .sh u otras extensiones típicas como los files .command?

Estoy buscando una forma de inyectar más extensiones en la database de services de lanzamiento de OS X sistemáticamente para que cuando se hace clic, se ejecuten en la aplicación de la terminal al igual que los files .command de manera pnetworkingeterminada.

Cosas como .ksh , .sh y .csh sería bueno comenzar, pero supongo que una vez que .ksh cómo agregar una, es fácil hacer el rest.

Una respuesta específica para Lion o Snow Leopard está bien, por lo que no es necesaria una respuesta de caso general para todas las versiones del sistema operativo. Sería genial si esto fuera secuencia de commands y escribiera directamente a la database de Servicios de Lanzamiento para poder automatizar esto en lugar de ir al buscador en cada Mac y hacer un montón de clic.

  • Sincronizar dispositivo iOS desde la terminal
  • ¿Cómo puedo montar un disco con Truecrypt a través de un script basado en su UUID?
  • Fish adb no encontrado
  • Cada vez que reinicio la computadora, el enlace de Atom deja de funcionar
  • Modificando PATH para que / usr / local / bin esté por delante de / usr / bin
  • Obteniendo un montón de errores de Open 5 al usar el Terminal para reparar permissions
  • Ya no se puede copyr / pegar en tmux 2.1
  • La forma más segura y confiable de mover files de la unidad A a la unidad B
  • 3 Solutions collect form web for “¿Puede FinFinder y el command "abrir" tratar los files con .sh u otras extensiones típicas como los files .command?”

    Si se abre un file con Terminal y tiene el bit de ejecución configurado, entonces Terminal lo ejecutará.

    Obtenga información en un file .sh y configúrelo para abrirlo con Terminal y click el button Cambiar todo.

    Para preferir que Terminal abra files .sh, utilizando el command pnetworkingeterminado, sin usar Finder

    En la mayoría de los casos, todo lo que se requiere debe ser posible desde la command-line …

    Preparación

    Dos commands:

    defaults read com.apple.LaunchServices | grep -B 1 -A 3 public.shell-script

    defaults read com.apple.LaunchServices | grep -B 1 -A 4 "LSHandlerContentTag = sh;"

    Si cualquiera de los commands revela una preference existente

    Use Xcode o cualquier otro editor de list de properties adecuado para eliminar el dictionary correspondiente de la key LSHandlers dentro del siguiente file:

    ~/Library/Preferences/com.apple.LaunchServices.plist

    Sugerencias:

    • defaults , con los que estoy más familiarizado, parecen inadecuados para la eliminación de un solo dictionary de una matriz
    • la eliminación debe ser necesaria solo si (digamos) el usuario ha utilizado previamente Finder para asociar files .sh con una aplicación que no sea la pnetworkingeterminada del sistema
    • ¿Una respuesta de Superusuario en Cómo cambiar la aplicación pnetworkingeterminada para todos los files de un tipo de file particular a través del terminal en OS X? ha sido editado recientemente para include un guión que usa PlistBuddy – crédito para Daniel Beck .

    Agregar a las preferences de LaunchServices, para que Terminal muestre y edite files .sh

    Dos commands de una línea.

    Dependiendo de sus requisitos, el primer command solo puede ser suficiente:

    defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = "public.shell-script"; LSHandlerRoleViewer = "com.apple.Terminal"; LSHandlerRoleEditor = "com.apple.Terminal"; }'

    defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentTag = "sh"; LSHandlerContentTagClass = "public.filename-extension"; LSHandlerRoleViewer = "com.apple.Terminal"; LSHandlerRoleEditor = "com.apple.Terminal"; }'

    Para que se respeten las nuevas preferences

    Se deben confirmar las modificaciones a la capa de persistencia del dominio de usuario de Servicios de inicio . Para esto, less perjudicial para el usuario final será:

    • un reinicio del sistema operativo.

    Desde la command-line, si el reinicio inmediato es aceptable:

    sudo shutdown -r now


    Fondo

    Comprender el soporte de Terminal.app para .sh (public.shell-script)

    Considere el resultado del siguiente command:

    defaults read /Applications/Utilities/Terminal.app/Contents/Info

    • en CFBundleDocumentTypes ( una matriz de dictionarys que describe los types de documentos admitidos por el package ) vemos que Terminal está diseñado para admitir com.apple.terminal.shell-script

    • public.shell-script (la UTI declarada por el sistema asociada con .sh ) no se admite en ese nivel, aparece en otra parte de la list de properties, bajo UTExportedTypeDeclarations

    Terminal a un lado por un momento: a veces es inapropiado (o simplemente sin valor) forzar la apertura de un tipo de documento, por una aplicación que está diseñada sin soporte para ese tipo.

    Para Terminal, no me public.shell-script manejar el public.shell-script .

    La forma de hacerlo de Unix es abrir Terminal.app y establecer los scripts en ejecutable con chmod +x scriptname.sh .

    O puede crear un enlace de / bin / bash a / Aplicaciones y definir / Aplicaciones / bash para que sea la aplicación pnetworkingeterminada para los files .sh en el cuadro de dialog Obtener información. Pero esto parece ser algo extraño en mi humilde opinión.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).