在 Nautilus 中扩展环境变量

在 Nautilus 中扩展环境变量

我的 13.10 PC 上有一个“沙盒”文件夹,我用它来做任何“测试”之类的事情,或者当我更新一段代码并希望它与其他所有内容完全分开时。为了使这个过程有一定顺序,我把它分成了子文件夹,结构如下:

/数据/工作/沙箱/mmyy/ddmmyy

(即今天的文件夹是/data/Work/sandbox/0214/260214。)

为了能够快速切换到该目录,我设置了我的.bashrc以便分配一个环境变量,$TODAYSAND该变量每天更改并指向正确的文件夹,使用以下date命令:

TODAYSAND="/data/Work/sandbox/`date +%m%y/%d%m%y`"

这在 shell 中运行良好,所以我从中删除了此行.bashrc并将其添加到我的profile.d新脚本中/etc/profile.d/sandbox.sh。它仍然可以正确获取信息,并且在终端中我仍然可以cd $TODAYSAND毫无问题地获取信息。

我现在想在 Nautilus 中设置一个指向此文件夹并以相同的方式动态更改的书签,这样我就不必每次都找到最新的书签。但是,我甚至无法让它接受$TODAYSAND文件夹名称。如果我在顶部栏中输入它(通过输入 a/让我输入路径而不是搜索),它会尝试转到一个不存在的文件/$TODAYSAND,并给出一个错误,说它不存在。同样,如果我创建一个指向的书签$TODAYSAND,它 a) 使用与我告诉它为网络位置添加书签相同的图标创建它,并且 b) 当我单击它时,Nautilus 立即崩溃。

我怎样才能让 Nautilus 接受这个变量作为有效的文件路径?

答案1

我没有找到将环境变量传递给 Nautilus 的方法。

这是“如何动态更新书签?”的答案

在 Ubuntu 12.04 中,Nautilus 按~/.gtk-bookmarks以下格式存储书签

file:///home/username/Documents
....
file:///path/to/0214/260214

您可以使用一个小的 bash 函数将最后一行更改为

file:///path/to/0214/270214

它将动态更改书签。以下是脚本

updt_sand_box(){
if [ -d /path/to/"$(date +%m%y)"/"$(date +%d%m%y)" ]; then
    sed -i "s#$(date --date yesterday "+%d%m%y")#$(date +%d%m%y)#" ~/.gtk-bookmarks
else
    zenity --info --text="/path/to/$(date +%m%y)/$(date +%d%m%y) does not exist"
fi
}

将上述函数放入~/.bashrc并获取它,

. ~/.bashrc

要更新沙盒书签,请在终端中输入

updt_sand_box

上述脚本的使用方法多种多样。您可以创建一个 cronjob(使用适当的DISPLY变量)或将其放入~/.bashrc任何地方以便运行。

较新的 Ubuntu 很可能将书签存储在中~/.config/gtk-3.0/bookmarks,您需要相应地修改脚本。

将上述脚本中的替换~/.gtk-bookmarks为。~/.config/gtk-3.0/bookmarks

相关内容