Gizli dosyaları göstermeyi periyodik olarak nasıl kapatabilirim?


10

Bu yüzden, bazı dosyaları ve klasörleri vasıfsız gözlere gizlemek için, isimlerini değiştirerek ismin başına bir nokta koydum. Çalışır ve dosyalar gizlenir. Yetenekli olmayan meraklı insanlar onları görmeyecek. Ve tuş kombinasyonunu kullanarak açık ve kapalı "gizli dosyaları göstermek" Nautilus I dönüşü kullanarak Ctrl- H. İnce. Ama sonra özelliği açık mı yoksa kapalı mı bırakacağımı asla bilemiyorum.

Her 10 dakikada bir otomatik olarak başlayan ve "gizli dosyaları göster" özelliğini kapatacak bir bash betiği yazmak istiyorum. Bu yüzden meraklı gözlerin gizli dosyaları asla görmeyeceğinden emin olurum. Şimdi sorun şudur:

  • Varsa hangi bash komutunu kullanacağımı bilmiyorum. Eminim bash betikleri neredeyse her şeyi yapabilir, bu yüzden lütfen yardım edin!
  • Her xx saniyede veya dakikada bir bash komut dosyasını otomatik olarak nasıl başlatacağımı bilmiyorum.

Nasıl yaparım?


Merhaba Sarandazzo, eğer cevapların ya bir sorununuzu çözdü sen (solda aşağı okları / yukarı aşağıdaki büyük "V" kene) cevabı kabul etmek çok nazik olurdu (ben iş birden çok cevap olduğunu düşünüyorum). Bu sorunun sizin için uygun olduğunu belirtmenin uygun yoludur.
Jacob Vlijm

Yanıtlar:


10

Kayıt defterindeki gsettingssorumlu ayara dconfkomut satırından kolayca erişmek için kullanabilirsiniz .

Gizli dosyaların (adlarla başlayan .) gösterilip gösterilmeyeceği ayarı şemada bulunur org.gtk.Settings.FileChooserve çağrılır show-hidden.

İzin verilen değerler true(gizli dosyaları göster) veya false(bunları gösterme).

Gizli dosyaları göstermeyi etkinleştirme veya devre dışı bırakma komutları şunlardır:

gsettings set org.gtk.Settings.FileChooser show-hidden true
gsettings set org.gtk.Settings.FileChooser show-hidden false

Bu komutu her x dakikada bir otomatik olarak çalıştırmak için, bunu nasıl başaracağınızı öğrenmek için iki iyi kaynak vardır:

  • Kullanma cron(minimum çözünürlük 1 dakikadır): help.ubuntu.com: Cron Nasıl Yapılır

    O Not cronçok sınırlı bir set ile çalışır görevleri envyoktur dahil değişkenler DBUS_SESSION_BUS_ADDRESS, ancak bunun için ihtiyaç duyulan gsettingsçalışmaları. Bu nedenle, bu değişkeni ihtiyaç duyduğumuzda çalıştırdığımız komut dosyasında kendimiz belirlemeye özen göstermeliyiz

    Senin için bir senaryo hazırladım ( @JacobVlijm yardımı ile bu cevabı bana @Radu Rădeanu tarafından Stack Overflow ile bağlayan ) ve bu doğrudan ilgilenen 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
  • Kullanmadan cron: Her 10 saniyede bir komut nasıl çalıştırılır (cron olmadan)?


Ha, beni 9 saniye dövdün :)
Jacob Vlijm

Merhaba Bayt, DBUS_SESSION_BUS_ADDRESScron'dan çalıştırıldığında, düzenleme ayarlarının çalışması için ortam değişkenini ayarlamanız gerekir .
Jacob Vlijm

@JacobVlijm Teşekkürler, ama hiç cron konusunda deneyimli değilim. Bu yüzden nasıl yapılır sitesini bağladım. Bana yardım eder misin?
Bayt Komutanı

Kesinlikle, cron komutlarını çalıştırırken, env vars kümesi (çok) sınırlıdır, çünkü bir zamanlar cron komutlarını çalıştırmaya çalışırken buldum. Güzel yazı bu: stackoverflow.com/a/19666729/1391444 Radu'nun satırları, her zaman komut dosyalarında cron'dan gsettings düzenlerken kullanıyorum.
Jacob Vlijm

@JacobVlijm Env bölümünü dahil etti. doğru mu?
Bayt Komutanı

5

Diğer sürümleri kontrol etmem gerekecek, ancak 14.04 ve 15.10'da gsettingsgizli dosyaların görünürlüğünü kontrol etme komutu:

gsettings get org.gtk.Settings.FileChooser show-hidden
  • To set değeri false(gizli dosyalar görünmüyor):

    gsettings set org.gtk.Settings.FileChooser show-hidden false
  • veya true:

    gsettings set org.gtk.Settings.FileChooser show-hidden true

1. Değeri (yeniden) ayarlamak için bir komut dosyası:

#!/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"])

Çalıştırmak için:

  • komut dosyasını boş bir dosyaya kopyalayın, reset_hidden.py
  • komut ile çalıştırın:

    python3 /path/to/reset_hidden.py <interval>

    zaman aralığının saniye cinsinden olduğu, ör.

    python3 /path/to/reset_hidden.py 600

Başlangıç ​​Uygulamalarına ekleyin

Başlangıç ​​Uygulamalarına eklemek için: Çizgi> Başlangıç ​​Uygulamaları> Ekle. Komutu ekleyin:

python3 /path/to/reset_hidden.py <interval>

2. Komutu cron'dan çalıştırın

Bunun yerine bir arka plan script cron komutunu çalıştırarak tercih ederseniz, önemli bir çevre değişkeni olan değil ayarlayın:

DBUS_SESSION_BUS_ADDRESS

gronting'leri cron'dan düzenleme / ayarlama yalnızca değişkeni ilk kez ayarlarsanız çalışır .

Bunu cron'dan çalıştırmak istiyorsanız, cron'un aşağıdaki komut dosyasını çalıştırmasını sağlayı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

3. daha zarif, boşta zaman kullanarak

Bilgisayarınızda çalışıyorsanız, büyük olasılıkla dosyaların çalışırken beklenmedik şekilde gizlenmesini istemezsiniz.

Aşağıdaki komut dosyası kullanıldığında, dosyalar keyfi boşta kalma süresinden sonra gizlenecektir. Kurulum tam olarak aynıdır, [1]ancak dosyalar gizlenmeden önceki <interval>süre <idle_time>(saniye cinsinden) (tekrar).

Betiğin ihtiyacı xprintidle:

sudo apt-get install xprintidle

Senaryo

#!/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

1
15.10'da gsettings şemanızın / anahtarınızın doğru olduğunu onaylayabilirim. Ve +1 :)
Bayt Komutanı

0
  1. Manpage gconftool-2için kullanın nautilus-file-management-properties: http://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.html
  2. crontab -eProgramınız için kullanın . manpage: https://help.ubuntu.com/community/CronHowto

1
Ne zamandan beri tam olarak söyleyemem, ama gconfartık en azından Nautilus tarafından kullanılmıyor ve artık kullanılmıyor. 15.10 sistemimde ayarınız artık kullanılamıyor. Ayrıca, sadece ipuçları vermek yerine adımları daha açık bir şekilde tanımlamanız gerekir.
Bayt Komutanı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.