5 votos

Cómo hacer un alias (Cmd-L) utilizando la línea de comandos?

Con el Finder, Cmd-L es un atajo para hacer un alias de un archivo/directorio. ¿Cómo puedo utilizar la línea de comandos para hacer eso?

Traté de 'ln -s', pero genera el 'Enlace Simbólico', no 'Alias'.

8voto

Ramuns Usovs Puntos 1152

mkalias es un binario disponible en un conjunto de herramientas de aquí. También puede ser instalado a través de Homebrew con brew install osxutils.

Este es un SH script de shell que llama AppleScript para crear un alias.

Estoy incluyendo la secuencia de comandos de shell aquí para referencia futura en caso de que se pierde de las redes.

#!/bin/sh

# make_alias
# This script takes two command-line arguments:
# 1) The name (relative or full path) of a source file or folder (directory)
# 2) The name (relative or full path) of a destination folder (directory)
# The script makes a Finder-style alias to the source file or folder
# and puts it in the specified destination folder.
#
# Cameron Hayne (macdev@hayne.net), December 2003
# Modified as suggested by Paul Russell (prussell@sonic.net), May 2006
#          to allow either file or folder as source
# Mofified to work with ".app" files, January 2007

scriptname=`basename $0`
if [ $# -lt 2 ]; then
    echo "Usage: $scriptname srcPath destPath"
    exit
fi

srcPath=$1
destPath=$2

if [ ! -e "$srcPath" ]; then
    echo "$scriptname: $srcPath: No such file or directory"
    exit
fi

# remove possible trailing slash from $srcPath
srcPath=${srcPath%/}

# set $srcType to "file" or "folder" as appropriate
if [ -d "$srcPath" ]; then
    if [ "${srcPath##*.}" == "app" ]; then
        srcType="file"
    else
        srcType="folder"
    fi
else
    srcType="file"
fi

# check if the $destPath directory exists
if [ ! -d "$destPath" ]; then
    echo "$scriptname: $destPath: No such directory"
    exit
fi

# check if we have permission to create a new file in the $destPath directory
if [ ! -w "$destPath" ]; then
    echo "$scriptname: No write permission in the directory $destPath"
    exit
fi

case $srcPath in
/*) fullSrcPath=$srcPath ;;
~*) fullSrcPath=$srcPath ;;
*)  fullSrcPath=`pwd`/$srcPath ;;
esac

case $destPath in
/*) fullDestPath=$destPath ;;
~*) fullDestPath=$destPath ;;
*)  fullDestPath=`pwd`/$destPath ;;
esac

/usr/bin/osascript > /dev/null <<EOT
tell application "Finder"
    set macSrcPath to POSIX file "$fullSrcPath" as text
    set macDestPath to POSIX file "$fullDestPath" as text
    make new alias file to $srcType macSrcPath at folder macDestPath
end tell
EOT

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