¿Puedo crear un acceso directo / alias de escritorio a una carpeta desde el terminal?

12

Me gustaría crear un acceso directo de escritorio a una carpeta específica, enterrado profundamente dentro de ~/Library/ . La biblioteca está oculta por defecto en Lion, y me gustaría que siga siendo así, por una variedad de razones. ¿Hay una acción de línea de comandos de un solo paso que pueda usar para crear un acceso directo del escritorio a una ruta determinada? Me gustaría evitar soluciones que impliquen mostrar la Biblioteca, crear el Alias utilizando el Finder y volver a ubicarlo. Sé cómo hacerlo, pero para mis propósitos, sería preferible una única línea que se pueda pegar en la Terminal y que se haga con ella.

    
pregunta LessPop_MoreFizz 20.05.2012 - 02:35

4 respuestas

7

Prueba esto en la Terminal:

cd ~/Desktop
ln -s ~/Library/path/to/folder
    
respondido por el Boj 20.05.2012 - 04:21
11

Es posible hacerlo en una línea de Terminal. Supongamos que desea crear un alias al archivo "/Users/me/Library/Preferences/org.herf.Flux.plist".

osascript -e 'tell application "Finder"' -e 'make new alias to file (posix file "/Users/me/Library/Preferences/org.herf.Flux.plist") at desktop' -e 'end tell'

Debes reemplazar to file con to folder si tienes una carpeta.

Aquí hay un script de shell que le permite pasar una ruta de archivo o carpeta para crear el alias:

#!/bin/bash

if [[ -f "$1" ]]; then
  type="file"
else
  if [[ -d "$1" ]]; then 
    type="folder"
  else
    echo "Invalid path or unsupported type"
    exit 1
  fi
fi

osascript <<END_SCRIPT
tell application "Finder"
   make new alias to $type (posix file "$1") at desktop
end tell
END_SCRIPT

Si nombras este script make-alias.sh , chmod u+x make-alias.sh y lo pones en /usr/local/bin , puedes ejecutar, por ejemplo. make-alias.sh ~/Library/Preferences .

    
respondido por el Kelvin 20.05.2012 - 03:49
0

En caso de que necesite apuntar el enlace a una carpeta específica (o darle un nombre específico), puede usar set name of result to "…" como en

#!/bin/bash

if [[ $# -ne 2 ]]; then
    echo "mkalias: specify 'from' and 'to' paths" >&2
    exit 1
fi

from="$(realpath $1)"
todir="$(dirname $(realpath $2))"
toname="$(basename $(realpath $2))"
if [[ -f "$from" ]]; then
    type="file"
elif [[ -d "$from" ]]; then
    type="folder"
else
    echo "mkalias: invalid path or unsupported type: '$from'" >&2
    exit 1
fi

osascript <<EOF
tell application "Finder"
   make new alias to $type (posix file "$from") at (posix file "$todir")
   set name of result to "$toname"
end tell
EOF
    
respondido por el Mapio 08.01.2018 - 10:30
0
#!/bin/bash

get_abs() {
  # $1 : relative filename
  echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
}


if [[ $# -ne 2 ]]; then
    echo "mkalias: specify 'from' and 'to' paths" >&2
    exit 1
fi

from=$(eval get_abs $1)  
todir=$(dirname $(eval get_abs $2))
toname=$(basename $(eval get_abs $2))
if [[ -f "$from" ]]; then
    type="file"
elif [[ -d "$from" ]]; then
    type="folder"
else
    echo "mkalias: invalid path or unsupported type: '$from'" >&2
    exit 1
fi

osascript <<EOF
tell application "Finder"
   make new alias to $type (posix file "$from") at (posix file "$todir")
   set name of result to "$toname"
end tell
EOF
    
respondido por el Andrew McClure 10.07.2018 - 10:29

Lea otras preguntas en las etiquetas