如何定期关闭显示隐藏文件?

Sal*_*zzo 10 bash scripts files schedule

因此,为了向不熟练的人隐藏一些文件和文件夹,我修改了它们的名称,在名称的开头加了一个点。它有效,并且文件被隐藏。不熟练的爱管闲事的人不会看到他们。使用 Nautilus,我使用组合键打开和关闭“显示隐藏文件” Ctrl- H。美好的。但是我永远不知道我是打开还是关闭该功能。

我想编写一个 bash 脚本,它每隔 10 分钟自动启动一次,并关闭“显示隐藏文件”功能。所以我可以肯定,爱管闲事的人永远不会看到隐藏的文件。现在的问题是:

  • 我不知道要使用什么 bash 指令,如果有的话。我很确定 bash 脚本几乎可以做任何事情,所以,请帮忙!
  • 我不知道如何每隔 xx 秒或分钟自动启动一次 bash 脚本。

我该怎么做?

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)?


Jac*_*ijm 5

我将不得不检查其他版本,但在 14.04 和 15.10 上,gsettings检查隐藏文件可见性的命令是:

gsettings get org.gtk.Settings.FileChooser show-hidden
Run Code Online (Sandbox Code Playgroud)

1. 用于(重新)设置值的脚本是:

gsettings get org.gtk.Settings.FileChooser show-hidden
Run Code Online (Sandbox Code Playgroud)

运行它:

将其添加到启动应用程序

要将其添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:

python3 /path/to/reset_hidden.py <interval>
Run Code Online (Sandbox Code Playgroud)

2.从cron运行命令

如果您更喜欢从 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)

3.更优雅,利用空闲时间

如果您在计算机上工作,您可能不希望在工作时意外隐藏文件。

使用下面的脚本,文件将在任意空闲时间后隐藏。设置完全一样,[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

  1. 用于手册页:gconftool-2http ://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.htmlnautilus-file-management-properties
  2. 用于crontab -e您的日程安排。联机帮助页:https://help.ubuntu.com/community/CronHowto