Systemspezifikationen: 2011 iMac, OS X Mountain Lion 10.8.4
Ich habe verstanden, dass Rsync Mac Alises nicht richtig handhabt, und habe jetzt entdeckt, dass Hunderte von Aliasen, die ich zuvor auf mein tragbares Laufwerk kopiert habe, aus diesem Grund tot und nutzlos sind.
Gibt es eine Möglichkeit, Rsync zu zwingen, mit Aliasnamen umzugehen? Wenn die Antwort ein definitives "Nein" ist, wie kann ich dann alle Aliase in einem Verzeichnis rekursiv in Symlinks konvertieren, damit sie von Rsync verarbeitet werden? Ich habe Hinweise auf ein Applescript gefunden, das dies anscheinend tun würde, aber die Site, auf der das Skript gehostet wird, ist schon lange tot und verschwunden.
Kennt jemand als letzten Ausweg etwas anderes als Rsync, das inkrementelle Backups ermöglichen und auch Aliase handhaben würde?
Rsync kann den Inhalt von Alias-Dateien nicht einsehen, was für deren Konvertierung erforderlich wäre. Wenn Sie also möchten, dass Ihr Backup unverändert verwendet werden kann (ohne es auf dem ursprünglichen Laufwerk wiederherzustellen), müssen Sie die Aliase durch Symlinks ersetzen.
Auf MacOSXHints.com gibt es dafür eine Lösung . Es muss auf Ihrer Originalfestplatte ausgeführt werden (nicht auf dem Backup). Ich würde auch empfehlen, es zuerst in einigen Beispielverzeichnissen zu testen.
#!/bin/sh
if [ $# -eq 0 ]; then
echo "Usage: alias2ln alias1 alias2 alias3..."
echo " where alias1, alias2, etc are alias files."
echo " Each alias file will be converted into a symlink."
fi
while [ $# -gt 0 ]; do
if [ -f "$1" -a ! -L "$1" ]; then
item_name=`basename "$1"`
item_parent=`dirname "$1"`
item_parent="`cd \"${item_parent}\" 2>/dev/null && pwd || echo \"${item_parent}\"`"
item_path="${item_parent}/${item_name}"
linksource=`osascript<<EOS
tell app "Finder"
set theItem to (POSIX file "${item_path}") as alias
if the kind of theItem is "alias" then
get the posix path of (original item of theItem as text)
end if
end tell
EOS`
if [ $? -eq 0 ]; then
if [ ! -z "$linksource" ]; then
rm "$item_path"
ln -s "${linksource}" "${item_path}"
echo "\"${1}\" -> \"${linksource}\""
fi
fi
fi
shift
done
Laufen
alias2symlink
)chmod 755 alias2symlink
/path/to/alias2symlink alias1 alias2 ...
-bash: alias2ln.txt: command not found.
Was mache ich falsch?Als zukünftige Referenz habe ich einen einfachen Mac-Dienst gefunden, der Aliase perfekt in Symlinks umwandelt!
Diese Lösung umschließt das in der anderen Antwort erwähnte Skript tatsächlich als Automator-Aktion, um die Verwendung durch diejenigen zu erleichtern, die mit Terminal nicht vertraut sind.
Um den Dienst neu zu erstellen, verwenden Sie Automator, um einen Dienst zu erstellen, der ausgewählte Dateien und Ordner empfängt, wählen Sie die Aktion Shell-Skript ausführen aus und fügen Sie das Skript von Pastix in den Skriptbereich ein.
kein Hang
JVC