Wie kann man (in Thunar und Nautilus) ein Verzeichnis verbergen, ohne einen Punkt in seinen Namen einzufügen?

Wie kann man (in Thunar und Nautilus) ein Verzeichnis verbergen, ohne einen Punkt in seinen Namen einzufügen?

Normalerweise speichern Linux-Programme Benutzereinstellungen in ~/.*-Verzeichnissen. Leider befolgen einige Entwickler (von einigen Anwendungen, die ich brauche) diese Regel nicht und beginnen die Namen ihrer Einstellungsspeicherordner nicht mit einem Punkt. Dies führt dazu, dass nie verwendete Ordner ein Home-Verzeichnis überladen (vielleicht nicht das richtige Wort, da es nicht viele davon gibt, aber sie stören trotzdem). Sie umzubenennen ist keine Option, da die Anwendungen sie in diesem Fall nicht finden (und sie erneut erstellen).

Gibt es eine Möglichkeit, die Anzeige eines Ordners, dessen Name ohne Punkt beginnt, in gängigen Dateisystembrowsern auszublenden (ich verwende eigentlich Thunar von XFCE, neben Midnight Commander und Krusader, würde aber gerne auch mehr über Nautilus erfahren).

Antwort1

Nautilus(Update: Dies sollte jetzt auch mit Thunar funktionieren)blendet alle Dateien und Ordner aus, die in der Datei aufgeführt sind und .hiddensich im selben Verzeichnis befinden.

Es gibt zwei Möglichkeiten, einen Ordner in Nautilus auszublenden:

Nautilus-Skript

  1. Speichern Sie den folgenden Code in einer neuen Datei in Ihrem Home-Ordner. Nennen Sie sie 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. Führen Sie den folgenden Befehl aus, um das Skript zu installieren:

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
    
  3. Wählen Sie in Nautilus eine oder mehrere Dateien/Ordner aus und klicken Sie mit der rechten Maustaste. Wählen SieVersteckenvon demSkripteSpeisekarte:

    Bildbeschreibung hier eingeben

    Laden Sie den aktuellen Speicherort neu ( F5) und die ausgewählten Dateien/Ordner werden ausgeblendet.

Befehlszeile

Angenommen, Sie möchten einen Ordner mit dem Namen „Rick Astley’s Greatest Hits“ ausblenden, führen Sie einfach den folgenden Befehl aus:

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

Antwort2

Öffnen Sie Synaptic und suchen Sie nach „nautilus-hide“, um es zu installieren. Melden Sie sich ab und wieder an. Klicken Sie nun mit der rechten Maustaste auf eine beliebige Datei oder einen beliebigen Ordner. Im Kontextmenü wird nun die Option „Ausblenden“ angezeigt.

Der Name wird nicht geändert, aber der Ordner wird ausgeblendet.

Antwort3

ich veränderteAlvins gutes Drehbuchum (hoffentlich) pythonähnlicher zu sein (und möglicherweise schneller, wenn viele Dateien hinzugefügt werden, da .hiddennur einmal geöffnet wird):

#!/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()]))

verwandte Informationen