我正在编写一个
shell脚本,它将rsync文件从远程机器,一些
linux,一些mac,到中央备份服务器. mac在根级别上有文件夹,其中包含需要备份的所有文件/文件夹的别名.什么是终端命令我可以用来解析别名指向的文件/文件夹的路径? (我需要将这些路径传递给rsync)
我遇到了这个问题,所以我实现了一个命令行工具.它是
https://github.com/rptb1/aliasPath的开源
关键是,即使别名被破坏,它也会起作用,这与我发现的任何AppleScript解决方案都不同.因此,当大量文件更改卷时,您可以使用它来编写脚本来修复别名.这就是我写它的原因.
源代码非常简短,但这里是关键部分的摘要,对于需要在代码中解决此问题的任何其他人,或者想要查找相关协议的人.
NSString *aliasPath = [NSString stringWithUTF8String:posixPathToAlias]; NSURL *aliasURL = [NSURL fileURLWithPath:aliasPath]; NSError *error; NSData *bookmarkData = [NSURL bookmarkDataWithContentsOfURL:aliasURL error:&error]; NSDictionary *values = [NSURL resourceValuesForKeys:@[NSURLPathKey] fromBookmarkData:bookmarkData]; NSString *path = [values objectForKey:NSURLPathKey]; const char *s = [path UTF8String];