Как скрыть (в Thunar и Nautilus) каталог, не ставя точку в его имени?

14

Обычно программы Linux хранят настройки пользователя в каталогах ~ /. Но, к сожалению, некоторые разработчики (некоторых приложений, которые мне нужны) не следуют этому правилу и не начинают свои папки с настройками имен точек с точки. Это приводит к тому, что неиспользуемые пользователем папки загромождают (возможно, не правильное слово, поскольку их не так много, но они все равно раздражают) домашнего каталога. Переименование их не вариант, так как приложения не найдут их в этом случае (и создадут их снова).

Есть ли способ скрыть папку без точки, начинающую свое имя с отображения в обычных браузерах файловой системы (на самом деле я использую Thunar из XFCE, наряду с Midnight Commander и Krusader, но не прочь также узнать о Nautilus).

Иван
источник

Ответы:

18

Nautilus (обновление: теперь это должно работать и с Thunar) будет скрывать любой файл или папку, которые перечислены в файле, .hiddenрасположенном в том же каталоге.

Есть два способа скрыть папку в 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) и выбранные файлы / папки будут скрыты.

Командная строка

Скажем, вы хотите спрятать папку под названием «Величайшие хиты Рика Эстли», просто запустите следующую команду:

echo "Rick Astley's Greatest Hits" >> .hidden
Исайя
источник
2
Именно такой ответ я хотел получить. Но, к сожалению, не работает для Тунара.
Иван
@Ivan, надеюсь, в конце концов они его добавят, см. Отчет об ошибке, на который я ссылаюсь, в своем ответе.
Исаия
Почему двойные кавычки "ObnoxiousFolder" ??
karthick87
К вашему сведению, отчет об ошибке был закрыт как WONTFIX (довольно грубо IMO, так как для него уже был патч, и сопровождающий проекта в основном сказал: «Мне все равно»). Нам понадобится другое решение ...
Валдириус
Последние версии Thunar поддерживают это, так как они используют GIO для определения скрытых каталогов, а GIO теперь реализует поддержку .hiddenфайла.
Брайан Кэмпбелл
1

Откройте synaptic и выполните поиск по запросу «nautilus-hide». Выйти и войти. Теперь щелкните правой кнопкой мыши по любому файлу или папке. Теперь вы увидите опцию «Скрыть» в контекстном меню.

Это не изменит имя, но скроет папку.

Любопытный Ученик
источник
0

Я изменил хороший скрипт Алвина, чтобы он (надеюсь) был более 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()]))
Тобиас Кинцлер
источник