1 votos

¿Cómo pegar archivos usando Applescript (o bash)?

Quiero pegar un archivo copiado por Finder en la terminal. Algo así como pbpaste pero para binarios. (el propio pbpaste sólo devuelve el nombre base del archivo copiado).

0 votos

Qué debería pasar después, dónde quieres pegar el contenido del archivo a ?

0 votos

0 votos

@nohillside Quiero pastefile DIR para pegar el archivo en DIR.

4voto

qarma Puntos 71

Una forma que se me ocurre de hacer esto es usar un poco de AppleScriptObjC. Proporciona acceso a las diversas representaciones de tipos de datos en el portapapeles, y en múltiples.

Una vez recuperadas las rutas completas de los archivos, éstas pueden pasarse a la función cp comando.

Envolviendo esto en una declaración de función bash:

pastefiles() {
    IFS=$'\n'
    fs=($( osascript -e "use framework \"Foundation\"
        property this : a reference to the current application
        property NSPasteboard : a reference to NSPasteboard of this
        property NSURL : a reference to NSURL of this
        property pb : a reference to NSPasteboard's generalPasteboard

        property text item delimiters : linefeed

        pb's readObjectsForClasses:[NSURL] options:[]
        (result's valueForKey:\"path\") as list as text" ))

    cp -r "${fs[@]}" "$1"
}

Uso: pastefiles~/Example/Destination/Path

Puede añadir esto a su .bashrc para que la función esté disponible en cada nueva sesión del shell.

0 votos

En MacOS 10.15 Catalina, Apple ha sustituido el anterior shell por defecto, bash con zsh ¿Sabe si esto funcionará? tal cual si se coloca en los usuarios, por ejemplo .zprofile o .zshrc ¿archivo?

0 votos

@user3439894 Me temo que no lo sé. No se utiliza zsh antes. Yo uso FiSh como mi shell por defecto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X