Posso creare un collegamento / alias del desktop in una cartella dal terminale?

12

Vorrei creare un collegamento sul desktop a una cartella specifica, sepolto in profondità in ~/Library/ . La libreria è nascosta per impostazione predefinita in Lion e mi piacerebbe mantenerla in questo modo, per una serie di motivi. È possibile utilizzare un'azione a riga di comando in un'unica fase per creare un collegamento desktop a un determinato percorso? Mi piacerebbe evitare soluzioni che implichino il rilevamento della Libreria, la creazione dell'alias usando Finder e la sua ri-locazione. So come farlo, ma per i miei scopi, sarebbe preferibile una singola riga che può essere incollata nel terminale e fatta con essa.

    
posta LessPop_MoreFizz 20.05.2012 - 02:35
fonte

4 risposte

7

Prova questo sul terminale:

cd ~/Desktop
ln -s ~/Library/path/to/folder
    
risposta data 20.05.2012 - 04:21
fonte
11

È possibile farlo su una riga di Terminale. Supponiamo che tu voglia alias al file "/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'

Dovresti sostituire to file con to folder se hai una cartella.

Ecco uno script di shell che consente di passare in un percorso di file o cartella per creare l'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

Se denomini questo script make-alias.sh , chmod u+x make-alias.sh e lo metti in /usr/local/bin , puoi eseguire e.g. make-alias.sh ~/Library/Preferences .

    
risposta data 20.05.2012 - 03:49
fonte
0

Se devi indirizzare il link a una cartella specifica (o dargli un nome specifico), puoi usare set name of result to "…" come in

#!/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
    
risposta data 08.01.2018 - 10:30
fonte
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
    
risposta data 10.07.2018 - 10:29
fonte

Leggi altre domande sui tag