1 votos

Copiar la ruta relativa de un archivo en el Finder

¿Cómo puedo copiar una ruta de archivo en Finder sin el nombre de usuario (es decir, convertirla en una ruta de archivo relativa)?

En nuestra oficina trabajamos con Dropbox como servidor de archivos. Lo que significa que todos tenemos un directorio /User/username/Dropbox/.. Estamos compartiendo una tonelada de rutas de archivos cada día y estoy buscando una manera de acelerar esto.

Sé que existe el atajo cmd + option + c para copiar una ruta de archivo, pero que siempre incluirá /Users/username/ en la ruta, así que cuando comparto esa ruta con un colega no puede abrirla (porque su nombre de usuario es diferente, obviamente).

-> ¿Hay alguna forma de copiar la ruta del archivo como una ruta relativa, por ejemplo ~/Dropbox/filename ?

-> Si no es así, ¿es posible modificar el acceso directo cmd + option + c para que sustituya automáticamente a /Users/username/ con ~ ?

Cualquier ayuda o idea creativa será bienvenida.

2voto

user3439894 Puntos 5883

El ejemplo AppleScript código que se muestra a continuación, se probó en script Editor en MacOS Catalina con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .

  • 1 Asume los ajustes necesarios y apropiados en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>se han fijado/abordado según las necesidades.

Se puede utilizar en un Automatizador Acción rápida/servicio o por cualquier tercero aplicación que puede funcionar AppleScript código con un atajo de teclado .

Esto también se probó como un Automatizador Acción rápida/servicio con un atajo de teclado de ⌃⌘C asignado a ella en: Preferencias del sistema > Teclado > Atajos > Servicios

Ejemplo AppleScript código :

set tildeNamesList to {}
set homeFolder to POSIX path of (path to home folder)
tell application "Finder" to set selectedItemsList to (selection as alias list)
if selectedItemsList is {} then return
repeat with thisItem in selectedItemsList
    set thisItem to POSIX path of thisItem
    if thisItem does not start with homeFolder then return
    set AppleScript's text item delimiters to homeFolder
    set end of tildeNamesList to "~/" & text item 2 of thisItem
end repeat
set AppleScript's text item delimiters to linefeed
set tildeNamesList to text items of tildeNamesList as text
set AppleScript's text item delimiters to ""
set the clipboard to tildeNamesList

Notas:

El ejemplo AppleScript código , tal y como está codificado, hace lo siguiente:

  • Sustituye, por ejemplo, a /Users/you/ con ~/ en el ruta de acceso .
  • Funciona con un solo archivo/carpeta y o múltiples archivos/carpetas desde dentro de la propia Inicio carpeta .
  • Incluye los correspondientes tratamiento de errores para detener silenciosamente el procesamiento, según corresponda.
  • Coloca el ~/… nombre(s) de la ruta en el Portapapeles al pulsar la tecla asignada atajo de teclado a la Automatizador Acción rápida en Buscador .

Si desea escape de barra invertida y espacios en el nombres de ruta añadir las siguientes líneas de AppleScript código :

set AppleScript's text item delimiters to " "
set thisItem to text items of thisItem
set AppleScript's text item delimiters to "\\ "
set thisItem to text items of thisItem as text

Entre:

if thisItem does not start with homeFolder then return

Y:

set AppleScript's text item delimiters to homeFolder

Para el Automatizador Acción rápida/servicio configúrelo como se muestra en la imagen de abajo sustituyendo al predeterminado código en el Ejecutar AppleScript acción con el ejemplo AppleScript código .

enter image description here

Tenga en cuenta que mientras el Automatizador Acción rápida fue nombrado Nombres de ruta de Dropbox en el portapapeles se hizo más para que uno supiera para qué servía, sin embargo funcionará en cualquier archivo seleccionado dentro de su Inicio carpeta .

0voto

Marc Wilson Puntos 146

Puedes probar esto, aunque no es perfecto. Se disparará si tienes más de un archivo seleccionado.

Acoplarlo a la tecla de acceso directo que elijas.

tell application "Finder"
    set temp to selection as alias
end tell
set posixPathName to POSIX path of temp
set myHome to POSIX path of (path to home folder)
set result to get replaceText(myHome, "~/", posixPathName)
set the clipboard to result
return

on replaceText(find, replace, subject)
    set prevTIDs to text item delimiters of AppleScript
    set text item delimiters of AppleScript to find
    set subject to text items of subject

    set text item delimiters of AppleScript to replace
    set subject to subject as text
    set text item delimiters of AppleScript to prevTIDs

    return subject
end replaceText

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