web-dev-qa-db-fra.com

Comment cacher (dans Thunar et Nautilus) un répertoire sans mettre un point dans son nom?

Généralement, les programmes Linux stockent les paramètres de l'utilisateur dans les répertoires ~ /.*. Mais malheureusement, certains développeurs (de certaines applications dont j'ai besoin) ne suivent pas cette règle et ne démarrent pas leurs paramètres de noms de dossiers de stockage avec un point. Cela entraîne l'encombrement de dossiers jamais utilisés par l'utilisateur (pas le bon mot peut-être, car il n'y en a pas beaucoup, mais ils gênent de toute façon) un répertoire de base. Les renommer n'est pas une option, car les applications ne les trouveront pas dans ce cas (et les recréeront).

Existe-t-il un moyen de masquer un dossier ne comportant aucun point commençant par son nom dans les navigateurs de système de fichiers courants (j'utilise en fait Thunar de XFCE, aux côtés de Midnight Commander et de Krusader, mais je n’aimerais pas connaître Nautilus également).

14
Ivan

Nautilus (Mise à jour: cela devrait également fonctionner avec Thunar maintenant) cachera tous les fichiers ou dossiers répertoriés dans le fichier .hidden situé dans le même répertoire.

Il existe deux manières de masquer un dossier dans Nautilus:

Script Nautilus

  1. Enregistrez le code suivant dans un nouveau fichier de votre dossier personnel. Nommez-le 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. Exécutez la commande suivante pour installer le script:

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
    
  3. Dans Nautilus, sélectionnez un ou plusieurs fichiers/dossiers et cliquez avec le bouton droit de la souris. Sélectionnez Hide dans le menu Scripts:

    enter image description here

    Recharger la position actuelle ( F5 ) et les fichiers/dossiers sélectionnés seront masqués.

Ligne de commande

Supposons que vous souhaitiez masquer un dossier appelé "Greatest Hits de Rick Astley", exécutez simplement la commande suivante:

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

Ouvrez synaptic et recherchez "nautilus-hide", installez-le. Déconnexion et connexion. Maintenant, faites un clic droit sur n'importe quel fichier ou dossier. Vous verrez maintenant une option "Cacher" dans le menu contextuel.

Cela ne modifiera pas le nom mais cachera le dossier.

1

J'ai modifié le bon script d'Alvin pour être (espérons-le) plus Pythonique (et potentiellement plus rapide si de nombreux fichiers sont ajoutés, puisque .hidden n'est ouvert qu'une seule fois):

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