ฉันจะปิดการแสดงไฟล์ที่ซ่อนเป็นระยะได้อย่างไร


10

ดังนั้นเพื่อที่จะซ่อนไฟล์และโฟลเดอร์บางอย่างเพื่อให้ได้ตาที่ไม่มีทักษะฉันได้แก้ไขชื่อของพวกเขาโดยใส่จุดไปที่จุดเริ่มต้นของชื่อ มันใช้งานได้และไฟล์ถูกซ่อนอยู่ คนที่มีจมูกยาวที่ไม่ชำนาญจะไม่เห็นพวกเขา และการใช้ Nautilus ฉันหัน "แสดงไฟล์ที่ซ่อน" และปิดโดยใช้คีย์ผสม-Ctrl Hละเอียด. แต่ฉันไม่เคยรู้เลยว่าจะเปิดหรือปิดคุณสมบัตินี้หรือไม่

ฉันต้องการเขียนสคริปต์ทุบตีที่เริ่มต้นโดยอัตโนมัติทุก ๆ 10 นาทีและจะปิดคุณสมบัติ "แสดงไฟล์ที่ซ่อน" ดังนั้นฉันจะมั่นใจได้ว่าดวงตาที่ไม่มีจมูกจะไม่เห็นไฟล์ที่ซ่อนอยู่ ตอนนี้ปัญหาคือ:

  • ฉันไม่รู้ว่าจะใช้คำสั่งทุบตีอะไรถ้ามี ฉันค่อนข้างมั่นใจว่าสคริปต์ทุบตีสามารถทำเกือบทุกอย่างได้โปรดช่วยด้วย!
  • ฉันไม่ทราบวิธีเริ่มสคริปต์ทุบตีอัตโนมัติทุก ๆ xx วินาทีหรือนาที

ฉันต้องทำอย่างไร?


สวัสดี Sarandazzo หากคำตอบข้อใดข้อหนึ่งแก้ปัญหาของคุณได้ (ฉันคิดว่ามีคำตอบหลายข้อที่ใช้งานได้) คุณจะยินดีที่จะตอบคำตอบหรือไม่ เป็นวิธีที่เหมาะสมในการระบุคำตอบที่เหมาะกับคุณ
Jacob Vlijm

คำตอบ:


10

คุณสามารถใช้gsettingsเพื่อเข้าถึงการตั้งค่าที่รับผิดชอบในdconfรีจิสทรีได้อย่างง่ายดายจากบรรทัดคำสั่ง

การตั้งค่าว่าจะแสดงไฟล์ที่ซ่อนอยู่ (ที่มีชื่อขึ้นต้นด้วย.) ตั้งอยู่ในสคีมาและเรียกorg.gtk.Settings.FileChoosershow-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 How-to

    โปรดทราบว่าcronเรียกใช้งานด้วยชุดenvตัวแปรที่จำกัด อย่างมากซึ่งไม่รวมDBUS_SESSION_BUS_ADDRESSแต่จำเป็นสำหรับgsettingsการทำงาน ดังนั้นเราต้องดูแลการตั้งค่าตัวแปรนี้ในสคริปต์ที่เราเรียกใช้หากเราต้องการ

    ฉันเตรียมสคริปต์ให้คุณ (ด้วยความช่วยเหลือของ@JacobVlijmที่เชื่อมโยงฉันคำตอบนี้ไว้ใน Stack Overflowโดย@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 วินาที (ไม่มี cron)?


ฮาคุณเอาชนะฉันได้ 9 วินาที :)
Jacob Vlijm

สวัสดี Byte เมื่อเรียกใช้จาก cron คุณต้องตั้งค่าDBUS_SESSION_BUS_ADDRESSตัวแปรสภาพแวดล้อมเพื่อให้การแก้ไขการตั้งค่าทำงาน
Jacob Vlijm

@JacobVlijm ขอบคุณ แต่ฉันไม่มีประสบการณ์ใน cron เลย นั่นเป็นเหตุผลที่ฉันเพิ่งเชื่อมโยงเว็บไซต์วิธีการ คุณจะช่วยฉันได้ไหม
ผู้บัญชาการไบต์

อย่างแน่นอนเมื่อรันคำสั่งจาก cron ชุด env vars มี จำกัด (มาก) เนื่องจากฉันเคยพบว่าพยายามเรียกใช้คำสั่งจาก cron โพสต์ที่ดีคือสิ่งนี้: stackoverflow.com/a/19666729/1391444บรรทัดของ Radu ฉันมักจะใช้สคริปต์ในการแก้ไข gsettings จาก cron
Jacob Vlijm

@JacobVlijm รวมส่วน env ถูกต้องหรือไม่
ผู้บัญชาการ Byte

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

เพิ่มไปยังแอปพลิเคชันเริ่มต้น

ในการเพิ่มไปยังแอปพลิเคชันเริ่มต้น: Dash> แอปพลิเคชันเริ่มต้น> เพิ่ม เพิ่มคำสั่ง:

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

2. รันคำสั่งจาก cron

หากคุณต้องการเรียกใช้คำสั่งจาก cron แทนสคริปต์พื้นหลังตัวแปรสภาพแวดล้อมที่สำคัญจะไม่ถูกตั้งค่า:

DBUS_SESSION_BUS_ADDRESS

การแก้ไข / การตั้งค่า gsettings จาก cron ทำงานเฉพาะถ้าคุณตั้งค่าตัวแปรแรก

หากคุณต้องการเรียกใช้จาก cron ให้ cron เรียกใช้สคริปต์ด้านล่าง:

#!/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 :)
ผู้บัญชาการ Byte

0
  1. ใช้gconftool-2สำหรับnautilus-file-management-propertiesmanpage: 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 ของฉันการตั้งค่าของคุณไม่สามารถใช้ได้อีกต่อไป นอกจากนี้คุณควรอธิบายขั้นตอนให้ชัดเจนยิ่งขึ้นแทนที่จะบอกเป็นนัย
ผู้บัญชาการ Byte
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.