因此,为了隐藏一些文件和文件夹,不让不熟练的人看到,我修改了它们的名称,在名称开头加了一个点。这个方法有效,文件被隐藏了。不熟练的人将看不到它们。使用 Nautilus,我使用组合键Ctrl-来打开和关闭“显示隐藏文件” H。很好。但我从来不知道我应该打开还是关闭这个功能。
我想编写一个 bash 脚本,每隔 10 分钟自动启动一次,并关闭“显示隐藏文件”功能。这样我就能确保那些爱管闲事的人永远不会看到隐藏文件。现在的问题是:
- 我不知道该使用什么 bash 指令(如果有的话)。我很确定 bash 脚本几乎可以做所有事情,所以,请帮忙!
- 我不知道如何每 xx 秒或分钟自动启动 bash 脚本。
我该怎么做?
答案1
您可以从命令行轻松gsettings
访问注册表中的负责设置。dconf
是否显示隐藏文件(名称以 开头)的设置.
位于架构中org.gtk.Settings.FileChooser
,称为show-hidden
。
允许的值为true
(显示隐藏文件)或false
(不显示它们)。
以下是启用或禁用显示隐藏文件的命令:
gsettings set org.gtk.Settings.FileChooser show-hidden true
gsettings set org.gtk.Settings.FileChooser show-hidden false
要每 x 分钟自动运行此命令,有两个很好的资源可以了解如何实现此目的:
使用
cron
(最小分辨率为 1 分钟):help.ubuntu.com:Cron 使用方法请注意,
cron
运行任务时,变量非常有限env
,不包括DBUS_SESSION_BUS_ADDRESS
,但这是gsettings
运行所需的。因此,如果需要,我们必须在运行的脚本中自行设置此变量我为你准备了一个脚本(借助@JacobVlijm谁链接了我Stack Overflow 上的这个答案经过@Radu Rădeanu) 可以解决这个问题,并且可以直接运行
cron
:#!/bin/bash # --> Script to disable showing hidden files - to be run as cron job <-- # export DBUS_SESSION_BUS_ADDRESS environment variable PID=$(pgrep gnome-session) export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-) gsettings set org.gtk.Settings.FileChooser show-hidden false
不使用
cron
:如何每 10 秒执行一次命令(无需 cron)?
答案2
我必须检查其他版本,但在 14.04 和 15.10 上,gsettings
检查隐藏文件可见性的命令是:
gsettings get org.gtk.Settings.FileChooser show-hidden
到放值为
false
(不显示隐藏文件):gsettings set org.gtk.Settings.FileChooser show-hidden false
或者
true
:gsettings set org.gtk.Settings.FileChooser show-hidden true
1. 用于(重新)设置该值的脚本是:
#!/usr/bin/env python3
import subprocess
import sys
import time
interval = int(sys.argv[1])
key = "org.gtk.Settings.FileChooser"
val = "show-hidden"
while True:
time.sleep(interval)
subprocess.Popen(["gsettings", "set", key, val, "false"])
运行它:
- 将脚本复制到一个空文件中,并将其另存为
reset_hidden.py
通过命令运行它:
python3 /path/to/reset_hidden.py <interval>
时间间隔以秒为单位,例如
python3 /path/to/reset_hidden.py 600
将其添加到启动应用程序
要将其添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:
python3 /path/to/reset_hidden.py <interval>
2. 从 cron 运行命令
如果你更喜欢从 cron 而不是后台脚本运行命令,那么一个重要的环境变量是不是放:
DBUS_SESSION_BUS_ADDRESS
编辑/设置 cron 中的 gsettings 仅在您首先设置变量时才有效。
如果您想从 cron 运行它,请让 cron 运行以下脚本:
#!/bin/bash
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
gsettings set org.gtk.Settings.FileChooser show-hidden false
3. 更优雅地利用空闲时间
如果您正在使用计算机工作,您可能不希望文件在工作时意外隐藏。
使用下面的脚本,文件将在任意空闲时间后隐藏。设置完全相同,[1]
但<interval>
现在的时间是<idle_time>
(以秒为单位),在文件应该(再次)隐藏之前。
该脚本需要xprintidle
:
sudo apt-get install xprintidle
剧本
#!/usr/bin/env python3
import subprocess
import sys
import time
interval = int(sys.argv[1])
key = "org.gtk.Settings.FileChooser"
val = "show-hidden"
idle1 = 0
while True:
time.sleep(2)
idle2 = int(subprocess.check_output(["xprintidle"]).decode("utf-8").strip())/1000
if all([idle1 <= interval, idle2 >= interval]):
subprocess.Popen(["gsettings", "set", key, val, "false"])
idle1 = idle2
答案3
- 用于
gconftool-2
手册nautilus-file-management-properties
页:http://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.html - 用于
crontab -e
你的日程安排。手册页:https://help.ubuntu.com/community/CronHowto