既然有了 MacBook,自然就要关心各种工具在 macOS 上的可用性和好用性。
占位符同步,自从 Windows 8 以来最喜欢的功能也可以在 macOS 上使用了,极大提升了我使用 macOS 的体验。(我知道 iCloud Drive 可以,我也知道 Google Drive 也可以。)
不过和 PowerShell for macOS 的兼容性似乎有点问题,用 Invoke-Item
不一定能打开文件,见 GitHub/PowerShell/PowerShell/issues/8760。
之前有个 /t/453864 有尝试在 Linux 下实现占位符同步的 OneDrive 客户端。但从功能实现的难度上来说,似乎 macOS 实现该功能最简单——至少要做到双击的时候自动下载文件是最简单的。因为 macOS 支持设置每个文件单独的打开方式,所以 OneDrive 可以把元信息存储好了之后把占位文件的打开方式设置为自己的 handler,然后 handler 只要水合文件( hydrate,这是一个内部的 jargon,表示把文件变成可以在这台电脑上查看的)并查询默认文件处理程序,再调用即可。
当然,实际上的实现没这么简单,因为还要考虑程序直接访问文件的情况(例如用户从“打开文件”对话框里面选择文件,这不经过寻找文件打开程序的过程)。
另外,有兴趣的朋友可以调查一下哪个厂商最先推出的占位符同步功能的吗?(不算 Windows 的 hierarchical file storage,要不然肯定是 Windows,这太作弊了。)是 Windows 8 的 OneDrive,还是 iCloud Drive for OS X/macOS,还是 Google Drive,还是 Dropbox/box ?
1
chinvo 2019-01-28 09:19:32 +08:00 via iPhone
Dropbox 高级版有智能同步,就是占位符+自动清理本地不常用文件
|
2
AnyISalIn 2019-01-28 10:47:05 +08:00
通过 open 命令能打开嘛,为什么一定要用 powershell
|
3
geelaw OP @AnyISalIn #2 当然可以,open 是 macOS 内置的,完美模拟 Finder 里面双击,Finder 里面可以(这可是 OneDrive 的首要目标之一)自然是可以的。
为什么要用 PowerShell ?因为 PowerShell 比 bash 更可移植且我最擅长的命令行 shell 是 PowerShell (你可以参考我的 blog 构建系统,之前一直是 Windows exclusive 的,拿到新电脑之后修了十几行就可以在 macOS 上跑了)。如果用 open 的话我的代码就不能在 Windows 上跑了,也不能在 Linux 上跑(如果将来我使用)。 |
4
agagega 2019-01-28 13:26:14 +08:00 via iPhone
好像 iCloud 这个占位符功能是从 Sierra 还是 El Capitan 开始的
|
5
LightningDog 2019-01-28 14:48:13 +08:00
之前就郁闷为什么 macos 的 onedrive 没有这功能,今天终于来了,不错
|