Donc, afin de cacher certains fichiers et dossiers aux yeux non qualifiés, j'ai modifié leurs noms en mettant un point au début du nom. Cela fonctionne et les fichiers sont cachés. Nosy qui ne sont pas qualifiés ne les verront pas. Et en utilisant Nautilus, j’allume et éteint "afficher les fichiers cachés" en utilisant la combinaison de touches Ctrl-H. Bien. Mais alors je ne sais jamais si je laisse la fonctionnalité activée ou désactivée.
J'aimerais écrire un script bash qui démarre automatiquement toutes les 10 minutes, par exemple, et désactive la fonctionnalité "Afficher les fichiers cachés". Donc, je serais sûr que les yeux curieux ne verront jamais les fichiers cachés. Maintenant le problème est que:
Comment fait-on ça?
Vous pouvez utiliser gsettings
pour accéder facilement au paramètre responsable dans le registre dconf
à partir de la ligne de commande.
Le paramètre permettant d'afficher ou non les fichiers cachés (dont le nom commence par .
) se trouve dans le schéma org.gtk.Settings.FileChooser
et est appelé show-hidden
.
Les valeurs autorisées sont true
(afficher les fichiers cachés) ou false
(ne pas les afficher).
Donc, voici les commandes pour activer ou désactiver l'affichage des fichiers cachés:
gsettings set org.gtk.Settings.FileChooser show-hidden true
gsettings set org.gtk.Settings.FileChooser show-hidden false
Pour exécuter automatiquement cette commande toutes les x minutes, il existe deux bonnes ressources pour savoir comment y parvenir:
Utilisation de cron
(résolution minimale de 1 minute): help.ubuntu.com: Cron How-to
Notez que cron
exécute des tâches avec un ensemble très limité de env
variables qui n'incluent pas DBUS_SESSION_BUS_ADDRESS
, mais cela est nécessaire pour que gsettings
fonctionne. Nous devons donc régler cette variable nous-mêmes dans le script que nous exécutons si nous en avons besoin.
J'ai préparé un script pour vous (avec l'aide de @ JacobVlijm qui m'a lié cette réponse sur Stack Overflow par @ Radu Rădeanu ) qui s’occupe de ce problème et peut être exécuté directement par 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
Sans utiliser cron
: Comment exécuter une commande toutes les 10 secondes (sans le cron)?
Je devrai vérifier d'autres versions, mais le 14.04 et le 15.10, la commande gsettings
pour vérifier la visibilité des fichiers cachés est la suivante:
gsettings get org.gtk.Settings.FileChooser show-hidden
Pour définir la valeur sur false
(ne pas afficher les fichiers cachés):
gsettings set org.gtk.Settings.FileChooser show-hidden false
ou true
:
gsettings set org.gtk.Settings.FileChooser show-hidden true
#!/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
lancez le par la commande:
python3 /path/to/reset_hidden.py <interval>
où l'intervalle de temps est en secondes, par ex.
python3 /path/to/reset_hidden.py 600
Pour l'ajouter aux applications de démarrage: Dash> Applications de démarrage> Ajouter. Ajoutez la commande:
python3 /path/to/reset_hidden.py <interval>
Si vous préférez exécuter la commande à partir de cron au lieu d’un script d’arrière-plan, une variable d’environnement importante est et non :
DBUS_SESSION_BUS_ADDRESS
() modifier/configurer les paramètres de cron ne fonctionne que si vous définissez d'abord la variable .
Si vous voulez l'exécuter à partir de cron, demandez à cron d'exécuter le script ci-dessous:
#!/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
Si vous travaillez sur votre ordinateur, vous ne voudriez probablement pas que les fichiers se cachent de manière inattendue pendant que vous travaillez.
En utilisant le script ci-dessous, les fichiers seront cachés après un temps d'inactivité arbitraire. La configuration est identique à [1]
mais le temps <interval>
est maintenant le <idle_time>
(en secondes), avant que les fichiers ne se cachent (à nouveau).
Le script a besoin de xprintidle
:
Sudo apt-get install xprintidle
Le script
#!/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
gconftool-2
pour nautilus-file-management-properties
page de manuel: http://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.htmlcrontab -e
pour votre emploi du temps. page de manuel: https://help.ubuntu.com/community/CronHowto