
通常、Linux プログラムはユーザーの設定を ~/.* ディレクトリに保存します。しかし残念なことに、一部の開発者 (私が必要とする一部のアプリケーション) はこのルールに従わず、設定保存フォルダーの名前をドットで始めません。その結果、ユーザーが使用しないフォルダーがホーム ディレクトリを乱雑にします (それほど多くはないので、この表現は適切ではないかもしれませんが、とにかく煩わしいです)。この場合、アプリケーションがフォルダーを見つけられないため (再度作成されます)、名前を変更することはできません。
名前の先頭にドットがないフォルダーを、一般的なファイル システム ブラウザーに表示されないようにする方法はありますか (私は実際に、Midnight Commander と Krusader に加えて、XFCE の Thunar を使用していますが、Nautilus についても知りたいです)。
答え1
ノーチラス(更新: これは現在 Thunar でも動作するはずです).hidden
同じディレクトリにあるファイルにリストされているファイルまたはフォルダーはすべて非表示になります。
Nautilus でフォルダーを非表示にする方法は 2 つあります。
ノーチラススクリプト
次のコードをホーム フォルダー内の新しいファイルに保存します。名前を付けます
Hide
。#!/usr/bin/env python import commands from os.path import join files = commands.getoutput("echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS") cwd = commands.getoutput("echo $NAUTILUS_SCRIPT_CURRENT_URI") cwd = cwd[7:] for f in files.split(" /"): f = f.split("/")[-1] commands.getoutput("echo "+f+" >> "+join(cwd, ".hidden"))
スクリプトをインストールするには、次のコマンドを実行します。
cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
Nautilusで、1つまたは複数のファイル/フォルダを選択して右クリックします。隠れるからスクリプトメニュー:
現在の場所(F5)を再読み込みすると、選択したファイル/フォルダが非表示になります。
コマンドライン
たとえば、「Rick Astley's Greatest Hits」というフォルダを非表示にしたい場合は、次のコマンドを実行します。
echo "Rick Astley's Greatest Hits" >> .hidden
答え2
synaptic を開いて、「nautilus-hide」を検索してインストールします。ログアウトしてログインします。次に、任意のファイルまたはフォルダーを右クリックします。コンテキスト メニューに「非表示」オプションが表示されます。
名前は変更されませんが、フォルダーは非表示になります。
答え3
変更しましたアルヴィンの優れた脚本(願わくば)より Python らしく(そして、.hidden
一度だけ開かれるので、多くのファイルが追加される場合はより高速になる可能性があります):
#!/usr/bin/env python
import os
files = os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].split()
# According to https://help.ubuntu.com/community/NautilusScriptsHowto
# the list is newline-delimited, which is split()'s default separator
# No need for NAUTILUS_SCRIPT_CURRENT_URI
cwd = os.path.dirname(files[0])
# Assuming all selected files are in the same path, I cannot imagine why not
# Instead of relying on "echo ... >> ..." use Python's IO:
with open(os.path.join(cwd, ".hidden"), "a") as hidden:
hidden.write("\n".join(
[os.path.basename(f) for f in files.split()]))