隠しファイルの表示を定期的にオフにするにはどうすればよいですか?


10

そのため、一部のファイルやフォルダーを未熟な人の目から隠すために、名前の先頭にドットを付けて名前を変更しました。動作し、ファイルは非表示です。熟練していないせんさく好きな人には見えません。また、Nautilusを使用して、キーの組み合わせを使用して「非表示ファイルの表示」のオンとオフを切り替えますCtrl- H。いいね。しかし、この機能をオンまたはオフのままにするかどうかはわかりません。

たとえば、10分ごとに自動的に開始し、「非表示ファイルの表示」機能をオフにするbashスクリプトを記述したいと思います。だから私はせんさく好きな目が隠しファイルを見ることは決してないだろうと確信しています。今問題はそれです:

  • 使用するbash命令があれば、わかりません。私はbashスクリプトがほぼすべてを実行できると確信しているので、助けてください!
  • xx秒または分ごとにbashスクリプトを自動的に開始する方法がわかりません。

どうすればいいのですか?


こんにちはSarandazzo です。いずれかの回答で問題が解決した場合(複数の回答があると思います)、その回答を受け入れてもらえますか(左側の上下矢印の下にある大きな「V」にチェックマークを付けてください)。それはあなたのために働いた答えを示す適切な方法です。
Jacob Vlijm

回答:


10

コマンドラインから簡単gsettingsdconfレジストリの責任ある設定にアクセスできます。

隠しファイル(名前がで始まる.)を表示するかどうかの設定は、スキーマに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分ごとに自動的に実行するには、これを達成する方法を学ぶための2つの優れたリソースがあります。

  • 使用cron(最小解像度は1分):help.ubuntu.com:Cronの使い方

    は、を含まないcron非常に限定されたenv変数のセットでタスクを実行することに注意してください。したがって、必要に応じて、実行するスクリプトでこの変数を自分で設定する必要があります。DBUS_SESSION_BUS_ADDRESSgsettings

    私はあなたのためにスクリプトを用意しました(@JacobVlijmの助けを借りて、Stack Overflowでこの回答をリンクしてくれましたこの問題を処理し、次のように直接実行できる @RaduRă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
  • 使用せずにcron10秒ごとにコマンドを実行する方法(cronなし)?


ハ、あなたは私を9秒打ちました:)
Jacob Vlijm

こんにちはバイト、cronから実行するときは、DBUS_SESSION_BUS_ADDRESSgsettingsの編集を機能させるために環境変数を設定する必要があります。
Jacob Vlijm 2016年

@JacobVlijmおかげで、私はcronの経験がまったくありません。それがハウツーサイトをリンクした理由です。手伝ってくれませんか。
バイトコマンダー

絶対に、cronからコマンドを実行する場合、cronからコマンドを実行しようとしたことがあったので、env変数のセットは(非常に)制限されています。いい投稿はこれです:stackoverflow.com/a/19666729/1391444 Raduの行。cronからgsettingsを編集するときはいつもスクリプトで使用します。
Jacob Vlijm 2016年

@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. cronからコマンドを実行します

バックグラウンドスクリプトではなくcronからコマンドを実行する場合は、重要な環境変数は設定されていません

DBUS_SESSION_BUS_ADDRESS

cronからのgsettingsの編集/設定は、最初に変数を設定した場合にのみ機能します

場合あなたは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
15.10では、gsettingsスキーマ/キーが正しいことを確認できました。そして+1 :)
バイトコマンダー

0
  1. 使用gconftool-2のためのnautilus-file-management-propertiesmanページ:http://manpages.ubuntu.com/manpages/hardy/man1/gconftool-2.1.html
  2. crontab -eあなたのスケジュールに使用します。マンページ:https : //help.ubuntu.com/community/CronHowto

1
いつからかは正確にgconfはわかりませんが、非推奨になり、少なくともNautilusでは使用されなくなりました。15.10システムでは、設定は使用できなくなりました。また、ヒントを与えるだけでなく、手順をより明確に説明する必要があります。
バイトコマンダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.