Come nascondere (in Thunar e Nautilus) una directory senza mettere un punto nel suo nome?


14

Di solito i programmi Linux memorizzano le impostazioni dell'utente nelle directory ~ /.*. Ma sfortunatamente alcuni sviluppatori (di alcune applicazioni di cui ho bisogno) non seguono questa regola e non iniziano i nomi delle cartelle di archiviazione delle impostazioni con un punto. Ciò si traduce in un ingombro di cartelle mai usato (non la parola giusta forse, poiché non ce ne sono molte, ma infastidiscono comunque) una home directory. Rinominarli non è un'opzione, poiché le applicazioni non li troveranno in questo caso (e li creeranno di nuovo).

C'è un modo per nascondere una cartella senza punto che inizia a essere visualizzata nei browser di file system comuni (in realtà utilizzo Thunar di XFCE, insieme a Midnight Commander e Krusader, ma non mi dispiacerebbe sapere di Nautilus).

Risposte:


18

nautilo (Aggiornamento: dovrebbe funzionare anche con Thunar ora) nasconderà qualsiasi file o cartella elencato nel file .hiddensituato nella stessa directory.

Esistono due modi per nascondere una cartella in Nautilus:

Script Nautilus

  1. Salvare il seguente codice in un nuovo file nella cartella principale. Dillo 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. Eseguire il comando seguente per installare lo script:

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
    
  3. In Nautilus, selezionare uno o più file / cartelle e fare clic con il tasto destro. Seleziona Nascondi dal menu Script :

    inserisci qui la descrizione dell'immagine

    Ricarica la posizione corrente ( F5) e i file / le cartelle selezionati verranno nascosti.

Riga di comando

Supponi di voler nascondere una cartella chiamata "Greatest Hits di Rick Astley", basta eseguire il comando seguente:

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

2
Esattamente una specie di risposta che desideravo ottenere. Ma, sfortunatamente, non funziona per Thunar.
Ivan,

@Ivan, si spera che alla fine lo aggiungano, vedi la segnalazione di bug a cui ho collegato la mia risposta.
Isaia il

Perché le doppie virgolette "ObnoxiousFolder" ??
karthick87,

Cordiali saluti, la segnalazione di bug è stata chiusa come WONTFIX (piuttosto scortesemente IMO, poiché c'era già una patch per esso, e il manutentore del progetto ha praticamente detto "Non mi interessa"). Avremo bisogno di un'altra soluzione ...
waldyrious

La versione recente di Thunar lo supporta poiché utilizza GIO per determinare le directory nascoste e GIO ora implementa il supporto per il .hiddenfile.
Brian Campbell,

1

Apri synaptic e cerca "nautilus-hide" installalo. Esci e accedi. Ora fai clic destro su qualsiasi file o cartella. Ora vedrai un'opzione "Nascondi" nel menu contestuale.

Non modificherà il nome ma nasconderà la cartella.


0

Ho modificato il buon script di Alvin per essere (si spera) più Pythonic (e potenzialmente più veloce se vengono aggiunti molti file, poiché .hiddenviene aperto solo una volta):

#!/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()]))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.