如何隐藏(在 Thunar 和 Nautilus 中)目录而不在目录名称中添加点?

如何隐藏(在 Thunar 和 Nautilus 中)目录而不在目录名称中添加点?

通常,Linux 程序将用户的设置存储在 ~/.* 目录中。但不幸的是,一些开发人员(我需要的一些应用程序的开发人员)不遵循此规则,并且不以点开头设置存储文件夹的名称。这会导致用户从未使用过的文件夹杂乱无章(也许这个词不太恰当,因为这些文件夹并不多,但它们无论如何都很烦人)。重命名它们不是一种选择,因为在这种情况下应用程序找不到它们(并将再次创建它们)。

有没有办法隐藏名称中没有点开头的文件夹,使其不显示在常见的文件系统浏览器中(我实际上使用 XFCE 的 Thunar,以及 Midnight Commander 和 Krusader,但也不介意了解 Nautilus)。

答案1

鹦鹉螺(更新:现在它也适用于 Thunar).hidden将隐藏位于同一目录中的文件中列出的任何文件或文件夹。

有两种方法可以在 Nautilus 中隐藏文件夹:

Nautilus 脚本

  1. 将以下代码保存在主文件夹中的新文件中。将其命名为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"))
    
  2. 运行以下命令来安装脚本:

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
    
  3. 在 Nautilus 中,选择一个或多个文件/文件夹并右键单击。选择隐藏来自脚本菜单:

    在此处输入图片描述

    重新加载当前位置(F5),选定的文件/文件夹将被隐藏。

命令行

假设您想隐藏一个名为“Rick Astley's Greatest Hits”的文件夹,只需运行以下命令:

echo "Rick Astley's Greatest Hits" >> .hidden

答案2

打开 synaptic 并搜索“nautilus-hide”安装它。注销并登录。现在右键单击任何文件或文件夹。现在您将在上下文菜单中看到“隐藏”选项。

它不会修改名称但会隐藏文件夹。

答案3

我修改了艾尔文的好剧本(希望)更加 Pythonic(如果添加许多文件,则可能会更快,因为.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()]))

相关内容