圣诞节快乐!

使用场景

这次大概是遇到了这么个使用场景:

我打算重拾半年未记的个人财务管理,就是记账。有过两次分别半年左右的随手记使用经历,体验并不是太好,广告太多,软件太重。

而且我是家庭记账的形式,家里那位先生大脑比较简单,是胜任不了这样消耗精神力的任务,也就是我需要记两个人的帐,随手记支持家庭共享账本,但这个功能对于一方完全不记账的人而言也没什么太大作用。

大概这么纠结了一番,选用了MoneyPro(Mac/iOS同步,安卓端不能同步),这款记账软件的优势在于简洁,是的,对我而言,简洁最重要,还支持预算、报表等多项功能。其他的自动同步银行卡等功能其实还不如国内很多App,比如网易有钱。

关键在于掌握该项技能:管理自己的财务状况和学会理财。使用哪款软件并不是重点。

废话这么多,说说我遇到的问题。我的电脑端是Mac,但我的移动端是Android,这就尴尬了,因为开发者还没有支持安卓端的同步。

我只好将电脑端软件的备份文件配置使用OneDrive与手机端同步,众所周知,像OneDrive、Dropbox只能同步软件目录下的文件,MoneyPro的配置文件显然不在该目录下。

软连接

那么电脑端就需要实现 OneDrive同步外部文件夹

到了软连接(symbol link)出马的时候了,软连接能够实现若干目录项之间建立联系的一种方法,比较类似Windows下的快捷方式。

软连接(符号连接),硬连接,再加上Windows下快捷方式,三者的区别在于:

在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。

  • 快捷方式只被能识别的软件或者系统所支持,它会被文件系统识别为一个文件

    快捷方式文件里对指向的路径进行配置,通过读取该配置文件来识别指向路径

  • 硬链接是一个指针,指向文件索引节点,系统并不为它重新分配inode

    不可以在不同文件系统的文件间建立链接

    只有超级用户才可以为目录创建硬链接

    删除所有连接,文件才会被物理删除

  • 软连接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接,灵活性更好

    软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件

    在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系

    链接数目是不一样的,软链接的链接数目不会增加

    软连接文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的

软连接与硬连接的区别,test1soft是指向test1的软连接,test2hard是指向test2的硬连接:

1
2
3
4
5
ls -il
6692958 -rw-r--r-- 1 gxy staff 0 12 24 22:53 test1
6692992 lrwxr-xr-x 1 gxy staff 5 12 24 22:54 test1soft -> test1
6692962 -rw-r--r-- 2 gxy staff 0 12 24 22:53 test2
6692962 -rw-r--r-- 2 gxy staff 0 12 24 22:53 test2hard

软连接与快捷方式的区别,testsoft是指向test的软连接,testlink是指向test的快捷方式

1
2
3
4
ls -il
4785074604134601 drwxrwxrwx 0 root root 4096 Dec 24 22:15 test
2251799813738734 lrwxrwxrwx 0 root root 0 Dec 24 22:14 testsoft -> test
844424930185459 -rwxrwxrwx 1 root root 797 Dec 24 22:15 testlink.lnk

建立软连接/硬连接的方式

Windows下

mklink /D symbol target 建立指向target的符号连接

mklink /H 建立硬连接

Linux及Mac 下

ln target hardlink 建立硬连接

ln -s target softlink 建立软连接

rm -rf softlink 删除软连接

由于Mac下OneDrive不支持同步软件自身目录下的软连接,只能采取迂回政策,在目录下建立同步文件夹,在其他目录下建立软连接

1
ln -s OneDrive/XX targetDirectory