防止Nautilus显示安装在bash脚本中的分区
在我的bash脚本中,我挂载分区,检查分区,将文件复制到分区,然后卸载。当脚本安装分区时,Nautilus会弹出一个窗口,显示该分区并窃取焦点。这是我要避免的事情。 注意:我知道我可以在“系统设置”,“详细信息”,“可移动媒体” Never prompt or start programs on media insertion中更改此行为,但是我不想更改此行为,例如,如果插入了USB记忆棒,我只是想在bash脚本中阻止它。由于此脚本在其他用户的计算机上运行,因此我无法修改这些设置(在脚本中),因为如果该脚本异常终止,则会将修改后的设置保留在原处(我也不认为应该这样做)。 实际上,这种自动显示似乎不一致。如果我从终端执行完全相同的命令,则Nautilus不会显示,并且我知道脚本中还有其他未显示的安装。那么是什么原因造成的呢?这是代码示例(均会弹出单独的Nautilus窗口): mount $dev $target mkdir -p $target/home mount $homedev $target/home 我对了解挂载信号通知Nautilus的过程以及发生这种情况的原因感兴趣(如果我从终端挂载分区则不然)。防止这种情况发生的最佳方法是什么。 我注意到从11.10版开始(如果我没记错的话)这种行为。我当前正在运行12.04,但是该脚本必须在所有受支持的发行版上均有效。我不认为该解决方案应该涉及修改系统设置(不同版本之间可能会有所不同)。例如,如果您查看其他安装分区的事物(例如os-prober),则在安装不同分区时不会弹出nautilus窗口。 脚本可以在这里找到。而这里的部分地方鹦鹉螺持久性有机污染物。我认为它也在这里弹出,但我一直将测试重点放在第一个链接上。这是不弹出的地方,在其他挂载之前被调用-请注意,我已经将第一个改写为--read-only,并且在if语句中,并且没有区别。 理想情况下,答案将解释为什么会发生这种情况以及如何防止这种情况发生,换句话说,就是解释为什么将脚本mount与终端发出的脚本区别对待。如果它是一个经过充分说明的解决方案并且可以支持所有桌面环境(ubuntu,kubuntu,xubuntu,lubuntu等),那么一种不错的解决方法也将被接受-我也希望避免为了验证它而进行的测试呈指数级增长。 提前致谢 ============ 根据papashou的链接的解决方案: add_udev_rules () { for i in "$dev" "$homedev" "$bootdev" "$usrdev"; do if [ -n "$i" ]; then block=${i#/dev/} echo "KERNEL==\"""$block""\",ENV{UDISKS_PRESENTATION_HIDE}=\"1\"" >> "$wubi_move_dir"/wubi_move.rules fi …