मैं समय-समय पर छिपी हुई फाइलों को कैसे दिखाऊं?


10

इसलिए, कुछ फ़ाइलों और फ़ोल्डरों को अकुशल आंखों को छिपाने के लिए, मैंने नाम के प्रारंभ में एक डॉट लगाते हुए उनके नामों को संशोधित किया। यह काम करता है, और फाइलें छिपी हुई हैं। नासमझ लोग जो कुशल नहीं हैं, वे नहीं देखेंगे। और Nautilus का उपयोग करके मैं कुंजी संयोजन का उपयोग करके "शो हिडन फाइल्स" को चालू और बंद करता हूं Ctrl- H। ठीक। लेकिन तब मुझे कभी नहीं पता चलता कि मैं फीचर को ऑन या ऑफ करता हूं।

मैं एक बैश स्क्रिप्ट लिखना चाहता हूं जो स्वचालित रूप से हर, 10 मिनट में शुरू होती है, और "शो हिडन फाइल्स" फीचर को बंद कर देगी। इसलिए मुझे यकीन है कि नाक की आँखें छिपी हुई फ़ाइलों को कभी नहीं देख सकेंगी। अब समस्या यह है कि:

  • मैं नहीं जानता कि क्या बैश निर्देश का उपयोग करने के लिए, यदि कोई हो। मुझे पूरा यकीन है कि बैश स्क्रिप्ट लगभग सब कुछ कर सकती है, इसलिए, कृपया मदद करें!
  • मैं नहीं जानता कि कैसे स्वचालित रूप से हर xx सेकंड या मिनट में bash स्क्रिप्ट शुरू करें।

मैं यह कैसे करुं?


हाय सरनदाज़ो, अगर या तो एक उत्तर ने आपकी समस्या हल कर दी (मुझे लगता है कि कई उत्तर हैं जो काम करते हैं), तो क्या आप उत्तर स्वीकार करने के लिए इतने दयालु होंगे (बाईं ओर ऊपर / नीचे तीरों के नीचे बड़े "V" पर टिक करें)। यह आपके लिए काम किए गए उत्तर को इंगित करने का उपयुक्त तरीका है।
जैकब व्लिजम

जवाबों:


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

इस कमांड को हर x मिनट में स्वचालित रूप से चलाने के लिए, इसे प्राप्त करने के तरीके सीखने के लिए दो अच्छे संसाधन हैं:

  • उपयोग करना cron(न्यूनतम रिज़ॉल्यूशन 1 मिनट है): help.ubuntu.com: क्रोन हाउ-टू

    ध्यान दें कि cronबहुत ही सीमित envचर के साथ कार्य चलता है जिसमें शामिल नहीं है DBUS_SESSION_BUS_ADDRESS, लेकिन gsettingsकाम करने के लिए इसकी आवश्यकता है । इसलिए हमें इस चर को स्वयं उस स्क्रिप्ट में सेट करने का ध्यान रखना होगा जिसे हम ज़रूरत पड़ने पर चलाते हैं

    मैं (की मदद से आप के लिए एक स्क्रिप्ट तैयार @JacobVlijm जो मुझे जुड़ा हुआ स्टैक ओवरफ़्लो पर इस जवाब से @Radu Rădeanu कि इस समस्या का ख्याल रखता है और द्वारा सीधे चलाया जा सकता है) 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
  • उपयोग किए बिना cron: हर 10 सेकंड (क्रोन के बिना) कमांड को कैसे निष्पादित करें?


हा, आपने मुझे 9 सेकंड :)
जैकब वलिजम

हाय बाइट, जब क्रोन से चलाया जाता है, तो आपको DBUS_SESSION_BUS_ADDRESSसंपादन gsettings काम करने के लिए पर्यावरण चर सेट करने की आवश्यकता होती है ।
जैकब व्लिजम

@JacobVlijm धन्यवाद, लेकिन मैं क्रॉन में बिल्कुल भी अनुभवी नहीं हूं। इसलिए मैंने सिर्फ साइट को कैसे लिंक किया है। क्या आप मेरी मदद करेंगे?
बाइट कमांडर

बिल्कुल, जब क्रोन से कमांड्स चल रही हैं, तो env var का सेट (बहुत) सीमित है, जैसा कि मैंने एक बार क्रॉन से कमांड चलाने की कोशिश करते हुए पाया था। अच्छा पोस्ट यह एक है: stackoverflow.com/a/19666729/1391444 राडू की पंक्तियाँ, मैं हमेशा स्क्रिप्ट में उपयोग करता हूं जब क्रोन से gsettings का संपादन।
जैकब व्लिजम

@JacobVlijm में env हिस्सा शामिल था। क्या यह सही है?
बाइट कमांडर

5

मुझे अन्य रिलीज़ के लिए जांच करनी होगी, लेकिन 14.04 और 15.10 को, gsettingsछिपी हुई फ़ाइलों की दृश्यता की जांच करने की कमान है:

gsettings get org.gtk.Settings.FileChooser show-hidden
  • मान सेट करने के लिए false(छिपी फ़ाइलें न दिखाएं):

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

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

1. (फिर) के लिए एक स्क्रिप्ट मूल्य निर्धारित है:

#!/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
  • इसे कमांड द्वारा चलाएं:

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

    जहां समय-अंतराल सेकंडों में होता है, उदा

    python3 /path/to/reset_hidden.py 600

इसे स्टार्टअप एप्लिकेशन में जोड़ें

इसे स्टार्टअप एप्लिकेशन में जोड़ने के लिए: डैश> स्टार्टअप एप्लिकेशन> जोड़ें। कमांड जोड़ें:

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

2. क्रोन से कमांड चलाएं

यदि आप पृष्ठभूमि स्क्रिप्ट के बजाय क्रॉन से कमांड चलाना पसंद करते हैं, तो एक महत्वपूर्ण पर्यावरण चर सेट नहीं किया जाता है:

DBUS_SESSION_BUS_ADDRESS

यदि आप पहली बार चर सेट करते हैं तो क्रोन से gsettings का संपादन / सेटिंग केवल तभी काम करता है

यदि आप इसे क्रोन से चलाना चाहते हैं, तो क्रॉन को नीचे दी गई स्क्रिप्ट चलाएं:

#!/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. अधिक सुरुचिपूर्ण ढंग से, बेकार समय का उपयोग करना

यदि आप अपने कंप्यूटर पर काम कर रहे हैं, तो आप शायद काम करते समय फ़ाइलों को अप्रत्याशित रूप से छिपाना पसंद नहीं करेंगे।

नीचे दी गई स्क्रिप्ट का उपयोग करके, फ़ाइलों को एक मनमाने ढंग से निष्क्रिय समय के बाद छिपाया जाएगा। सेटअप बिल्कुल वैसा ही है [1]लेकिन <interval>समय अब <idle_time>(सेकंड में) है, इससे पहले कि फ़ाइलों को छिपाना चाहिए (फिर से)।

स्क्रिप्ट की जरूरत है xprintidle:

sudo apt-get install xprintidle

लिपी

#!/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
मैं पुष्टि कर सकता हूं कि आपका gsettings स्कीमा / कुंजी 15.10 पर सही है। और +1 :)
बाइट कमांडर

0
  1. मैनपेज के gconftool-2लिए उपयोग करें nautilus-file-management-properties: http://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.html
  2. crontab -eअपने शेड्यूल के लिए उपयोग करें । manpage: https://help.ubuntu.com/community/CronHowto

1
मैं आपको ठीक से बता नहीं सकता कि कब से है, लेकिन gconfवंचित है और अब कम से कम Nautilus द्वारा उपयोग नहीं किया जाता है। मेरे 15.10 सिस्टम पर, आपकी सेटिंग उपलब्ध नहीं है। इसके अलावा, आपको केवल संकेत देने के बजाय चरणों का अधिक स्पष्ट रूप से वर्णन करना चाहिए।
बाइट कमांडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.