Jak ukryć (w Thunar i Nautilus) katalog bez umieszczania kropki w nazwie?

14

Zwykle programy Linux przechowują ustawienia użytkownika w katalogach ~ /.*. Ale niestety niektórzy programiści (niektórych aplikacji, których potrzebuję) nie przestrzegają tej zasady i nie rozpoczynają ustawień folderów pamięci od kropki. Powoduje to, że nigdy nie używane przez użytkownika foldery są zaśmiecone (być może nie jest to właściwe słowo, ponieważ nie ma ich wiele, ale irytują) katalog domowy. Zmiana ich nazwy nie jest opcją, ponieważ aplikacje nie znajdą ich w tym przypadku (i utworzą je ponownie).

Czy istnieje sposób, aby ukryć folder bez kropki zaczynający swoją nazwę od wyświetlania w popularnych przeglądarkach systemów plików (faktycznie używam Thunar z XFCE, wraz z Midnight Commander i Krusader, ale nie mam nic przeciwko, aby wiedzieć o Nautilusie).

Ivan
źródło

Odpowiedzi:

18

Nautilus (aktualizacja: teraz powinno to również działać z Thunar) ukryje każdy plik lub folder, który jest wymieniony w pliku .hiddenznajdującym się w tym samym katalogu.

Istnieją dwa sposoby ukrycia folderu w Nautilusie:

Skrypt Nautilus

  1. Zapisz następujący kod w nowym pliku w folderze domowym. Nazwij to 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. Uruchom następujące polecenie, aby zainstalować skrypt:

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
    
  3. W Nautilus wybierz jeden lub więcej plików / folderów i kliknij prawym przyciskiem myszy. Wybierz Ukryj z menu Skrypty :

    wprowadź opis zdjęcia tutaj

    Ponownie załaduj bieżącą lokalizację ( F5), a wybrane pliki / foldery zostaną ukryte.

Wiersz poleceń

Załóżmy, że chcesz ukryć folder o nazwie „Największe przeboje Ricka Astleya”, po prostu uruchom następujące polecenie:

echo "Rick Astley's Greatest Hits" >> .hidden
Izajasza
źródło
2
Dokładnie taką odpowiedź, jaką chciałem uzyskać. Niestety nie działa w przypadku Thunar.
Ivan
@Ivan, mam nadzieję, że w końcu go dodadzą, zobacz raport o błędzie, do którego dałem link w mojej odpowiedzi.
Izajasza
Dlaczego podwójne cytaty „ObnoxiousFolder” ??
karthick87
Do Twojej wiadomości, raport o błędzie został zamknięty jako WONTFIX (raczej niegrzecznie IMO, ponieważ była już łatka, a opiekun projektu powiedział w zasadzie „nie obchodzi mnie”). Będziemy potrzebować innego rozwiązania ...
waldyrious
Najnowsza wersja Thunar obsługuje to, ponieważ używają GIO do określania ukrytych katalogów, a GIO implementuje teraz obsługę .hiddenpliku.
Brian Campbell
1

Otwórz synaptic i wyszukaj „nautilus-hide”, zainstaluj. Wyloguj się i zaloguj. Teraz kliknij prawym przyciskiem myszy dowolny plik lub folder. Zobaczysz teraz opcję „Ukryj” w menu kontekstowym.

Nie zmieni nazwy, ale ukryje folder.

Ciekawy uczeń
źródło
0

Zmodyfikowałem dobry skrypt Alvina, aby był (mam nadzieję) bardziej Pythonic (i potencjalnie szybszy, jeśli doda się wiele plików, ponieważ .hiddenjest otwierany tylko raz):

#!/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()]))
Tobias Kienzler
źródło