Системные характеристики: iMac 2011 г., OS X Mountain Lion 10.8.4
Я пришел к выводу, что Rsync неправильно обрабатывает Mac Alises, и теперь обнаружил, что сотни псевдонимов, которые я ранее скопировал на свой переносной диск, мертвы и бесполезны из-за этого.
Есть ли способ заставить Rsync обрабатывать псевдонимы? Если ответ окончательный «нет», то как я могу рекурсивно преобразовать все псевдонимы в каталоге в символические ссылки, чтобы они обрабатывались Rsync? Я нашел ссылки на Applescript, который, по-видимому, сделал бы это, но сайт, на котором размещен скрипт, давно мертв и ушел.
В крайнем случае, кто-нибудь знает что-нибудь кроме Rsync, которое позволяло бы создавать инкрементные резервные копии, а также обрабатывать псевдонимы?
Rsync не может просматривать содержимое файлов псевдонимов, которое необходимо для их преобразования. Поэтому, если вы хотите, чтобы ваша резервная копия использовалась как есть (без восстановления на исходный диск), вам придется заменить псевдонимы символическими ссылками.
Для этого есть решение на MacOSXHints.com. Его нужно запустить на исходном диске (не на резервной копии), я бы также рекомендовал сначала протестировать его на некоторых каталогах-образцах.
#!/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
Бежать
alias2symlink
)chmod 755 alias2symlink
/path/to/alias2symlink alias1 alias2 ...
-bash: alias2ln.txt: command not found.
то, что я делаю неправильно?Для дальнейшего использования я нашел простую службу Mac, которая отлично преобразует псевдонимы в символические ссылки!
Это решение фактически оборачивает сценарий, упомянутый в другом ответе, как действие автомата, чтобы упростить его использование теми, кто не знаком с терминалом.
Чтобы повторно создать службу, используйте Automator для создания службы, которая получает выбранные файлы и папки, выберите действие «Выполнить сценарий оболочки» и вставьте сценарий пастикса в область сценариев.
без холма
JVC