Entonces, para ocultar algunos archivos y carpetas a ojos inexpertos, modifiqué sus nombres poniendo un punto al comienzo del nombre. Funciona y los archivos están ocultos. Las personas curiosas que no son hábiles no los verán. Y usando Nautilus, enciendo y apago "mostrar archivos ocultos" usando la combinación de teclas Ctrl-H. Multa. Pero nunca sé si dejo la función activada o desactivada.
Me gustaría escribir un script bash que se inicie automáticamente cada, digamos, 10 minutos, y apague la función "mostrar archivos ocultos". Así que estaría seguro de que los ojos curiosos nunca verán archivos ocultos. Ahora el problema es que:
¿Cómo lo hago?
Puede usar gsettings
para acceder fácilmente a la configuración responsable en el registro dconf
desde la línea de comandos.
La configuración para mostrar archivos ocultos (con nombres que comienzan con .
) se encuentra en el esquema org.gtk.Settings.FileChooser
y se llama show-hidden
.
Los valores permitidos son true
(mostrar archivos ocultos) o false
(no mostrarlos).
Aquí están los comandos para habilitar o deshabilitar la visualización de los archivos ocultos:
gsettings set org.gtk.Settings.FileChooser show-hidden true
gsettings set org.gtk.Settings.FileChooser show-hidden false
Para ejecutar automáticamente este comando cada x minutos, hay dos buenos recursos para aprender cómo lograr esto:
Usando cron
(la resolución mínima es de 1 minuto): help.ubuntu.com: Cron How-to
Tenga en cuenta que cron
ejecuta tareas con un conjunto muy limitado de env
variables que no incluyen DBUS_SESSION_BUS_ADDRESS
, pero eso es necesario para que gsettings
funcione. Así que tenemos que ocuparnos de establecer esta variable nosotros mismos en el script que ejecutamos si lo necesitamos
Preparé un script para usted (con la ayuda de @ JacobVlijm que me vinculó esta respuesta en Stack Overflow by @ Radu Rădeanu ) que se ocupa de este problema y puede ejecutarse directamente por 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
Sin usar cron
: ¿Cómo ejecutar el comando cada 10 segundos (sin cron)?
Tendré que buscar otras versiones, pero en 14.04 y 15.10, el comando gsettings
para verificar la visibilidad de los archivos ocultos es:
gsettings get org.gtk.Settings.FileChooser show-hidden
Para establecer el valor en false
(no mostrar archivos ocultos):
gsettings set org.gtk.Settings.FileChooser show-hidden false
o 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
ejecútelo con el comando:
python3 /path/to/reset_hidden.py <interval>
donde el intervalo de tiempo es en segundos, p.
python3 /path/to/reset_hidden.py 600
Para agregarlo a las Aplicaciones de inicio: Tablero> Aplicaciones de inicio> Agregar. Agrega el comando:
python3 /path/to/reset_hidden.py <interval>
Si prefiere ejecutar el comando desde cron en lugar de un script de fondo, una variable de entorno importante es no establecida:
DBUS_SESSION_BUS_ADDRESS
editar/configurar gsettings desde cron solo funciona si primero configura la variable .
Si desea ejecutarlo desde cron, haga que cron ejecute el script a continuación:
#!/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 está trabajando en su computadora, probablemente no le gustaría que los archivos se oculten inesperadamente mientras trabaja.
Usando el siguiente script, los archivos se ocultarán después de un tiempo de inactividad arbitrario. La configuración es exactamente como [1]
pero el tiempo <interval>
ahora es el <idle_time>
(en segundos), antes de que los archivos se oculten (nuevamente).
El script necesita xprintidle
:
Sudo apt-get install xprintidle
El 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
para nautilus-file-management-properties
página de manual: http://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.htmlcrontab -e
para su horario. página de manual: https://help.ubuntu.com/community/CronHowto