Як приховати (у 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
Саме таку відповідь я хотів отримати. Але, на жаль, це не працює для Thunar.
Іван

@Ivan, Сподіваюся, вони з часом додадуть його, дивіться звіт про помилку, з яким я пов’язаний у своїй відповіді.
Ісая

Чому подвійні цитати "ObnoxiousFolder" ??
karthick87

FYI, звіт про помилки був закритий як WONTFIX (досить грубо IMO, оскільки там вже був патч, і керівник проекту в основному сказав: "Мені все одно". Нам знадобиться інше рішення ...
waldyrious

Остання версія Thunar підтримує це, оскільки вони використовують GIO для визначення прихованих каталогів, і GIO тепер реалізує підтримку .hiddenфайлу.
Брайан Кемпбелл

1

Відкрийте синаптик і знайдіть його «встановити приховати». Вихід та вхід. Тепер клацніть правою кнопкою миші на будь-якому файлі чи папці. Тепер ви побачите параметр "Сховати" в контекстному меню.

Це ім’я не змінить, але приховає папку.


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()]))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.