Sal*_*zzo 10 bash scripts files schedule
因此,为了向不熟练的人隐藏一些文件和文件夹,我修改了它们的名称,在名称的开头加了一个点。它有效,并且文件被隐藏。不熟练的爱管闲事的人不会看到他们。使用 Nautilus,我使用组合键打开和关闭“显示隐藏文件” Ctrl- H。美好的。但是我永远不知道我是打开还是关闭该功能。
我想编写一个 bash 脚本,它每隔 10 分钟自动启动一次,并关闭“显示隐藏文件”功能。所以我可以肯定,爱管闲事的人永远不会看到隐藏的文件。现在的问题是:
我该怎么做?
Byt*_*der 10
您可以使用从命令行轻松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
Run Code Online (Sandbox Code Playgroud)
要每 x 分钟自动运行一次此命令,有两个很好的资源可以学习如何实现这一点:
使用cron
(最小分辨率为 1 分钟):help.ubuntu.com:Cron How-to
请注意,cron
使用非常有限的一组env
变量运行任务,这些变量不包括DBUS_SESSION_BUS_ADDRESS
,但这是gsettings
工作所必需的。因此,如果需要,我们必须自己在运行的脚本中设置此变量
我为您准备了一个脚本(在@JacobVlijm的帮助下,他通过@Radu R?deanu在 Stack Overflow 上为我提供了这个答案),它可以解决这个问题,并且可以通过以下方式直接运行: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
Run Code Online (Sandbox Code Playgroud)不使用cron
:如何每 10 秒执行一次命令(不使用 cron)?
我将不得不检查其他版本,但在 14.04 和 15.10 上,gsettings
检查隐藏文件可见性的命令是:
gsettings get org.gtk.Settings.FileChooser show-hidden
Run Code Online (Sandbox Code Playgroud)
要将值设置为false
(不显示隐藏文件):
gsettings set org.gtk.Settings.FileChooser show-hidden false
Run Code Online (Sandbox Code Playgroud)或true
:
gsettings set org.gtk.Settings.FileChooser show-hidden true
Run Code Online (Sandbox Code Playgroud)gsettings get org.gtk.Settings.FileChooser show-hidden
Run Code Online (Sandbox Code Playgroud)
reset_hidden.py
通过命令运行它:
python3 /path/to/reset_hidden.py <interval>
Run Code Online (Sandbox Code Playgroud)
其中时间间隔以秒为单位,例如
python3 /path/to/reset_hidden.py 600
Run Code Online (Sandbox Code Playgroud)要将其添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:
python3 /path/to/reset_hidden.py <interval>
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢从 cron 而不是后台脚本运行命令,则不会设置重要的环境变量:
DBUS_SESSION_BUS_ADDRESS
Run Code Online (Sandbox Code Playgroud)
从 cron 编辑/设置 gsettings 仅在您首先设置变量时才有效。
如果你想从 cron 运行它,让 cron 运行下面的脚本:
gsettings set org.gtk.Settings.FileChooser show-hidden false
Run Code Online (Sandbox Code Playgroud)
如果您在计算机上工作,您可能不希望在工作时意外隐藏文件。
使用下面的脚本,文件将在任意空闲时间后隐藏。设置完全一样,[1]
但<interval>
时间现在是<idle_time>
(以秒为单位),然后文件应该隐藏(再次)。
脚本需要xprintidle
:
sudo apt-get install xprintidle
Run Code Online (Sandbox Code Playgroud)
剧本
gsettings set org.gtk.Settings.FileChooser show-hidden true
Run Code Online (Sandbox Code Playgroud)
小智 0
gconftool-2
http ://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.htmlnautilus-file-management-properties
crontab -e
您的日程安排。联机帮助页:https://help.ubuntu.com/community/CronHowto