如何将用户目录设置为仅在 ubuntu 启动后可用的目录?

如何将用户目录设置为仅在 ubuntu 启动后可用的目录?

我目前有一个加密的(使用 Veracrypt)存储分区,我在 Windows 和 Ubuntu 之间共享该分区(这样我就可以在操作系统之间共享相同的文件,并且可以更轻松地备份我的所有文件)。解密后,存储分区包含“桌面”、“图片”、“文档”等目录(用户目录)。要解密分区,我必须输入密码,我通过在 Ubuntu 的“启动应用程序首选项”中创建一个简短的脚本来完成此操作,该脚本启动终端,提示我输入密码,然后解密并将驱动器安装到~/Home/

gnome-terminal -e 'bash -c "sudo veracrypt -t -k \"\" --protect-hidden=no --pim=0 /dev/sda5 $HOME/Home; exec bash"'

在 Windows 上,我将用户目录设置为我的存储分区目录,当 Windows 启动时,桌面和其他目录都是空的,直到我输入我的 veracrypt 密码,然后所有用户目录都会填满来自存储分区的文件。我希望在 Ubuntu 上也能有类似的效果。


我尝试过的事情

  1. 存储分区挂载后,将 更改~/.config/user-dirs.dirs为我的用户目录所在的路径。(我相信它被 xdg-user-dirs-update 覆盖,并被主目录替换)
  2. 更改/etc/xdg/user-dirs.confenabled=False(我相信这只是使其更改为默认路径)
  3. 存储分区挂载后,将 更改/etc/xdg/user-dirs.defaults为我的用户目录所在的路径。(仍然只是将其更改为默认路径,这很奇怪,因为这不是定义默认值的文件吗??)
  4. 将简短的 veracrypt 脚本放在开头,/etc/xdg/user-dirs.conf看看是否可能xdg-user-dirs-update会暂停其进程以等待存储分区被解密并且终端关闭。 (没有)
  5. xdg-user-dirs-update更改中的值后运行~/.config/user-dirs.dirs。(我认为该命令在启动期间只运行一次,之后的所有执行都没有意义)

更新

运行mount --bind ~/old-dir/ ~/new-dir/适用于除桌面之外的所有用户目录。桌面目录设置为我的存储分区,~/Desktop/ 会按照我的意愿将我带到我的存储分区,但是,桌面本身不会更新以显示我的存储分区中的文件,而是显示以前的文件。如果我右键单击并创建新文件夹,它会在我的存储分区中创建一个新文件夹,而不会出现在桌面上。如果有某种方法可以刷新桌面以显示新安装的目录,那将会很有帮助。

相关内容