¿Cómo ocultar (en Thunar y Nautilus) un directorio sin poner un punto en su nombre?

14

Por lo general, los programas de Linux almacenan la configuración del usuario en directorios ~ /.*. Pero desafortunadamente, algunos desarrolladores (de algunas aplicaciones que necesito) no siguen esta regla y no comienzan sus nombres de carpetas de almacenamiento de configuración con un punto. Esto da como resultado el desorden de carpetas nunca utilizadas por el usuario (tal vez no sea la palabra correcta, ya que no hay muchas, pero de todos modos molestan) un directorio de inicio. Cambiarles el nombre no es una opción, ya que las aplicaciones no las encontrarán en este caso (y las crearán nuevamente).

¿Hay alguna manera de ocultar una carpeta que no tiene un punto que comienza a mostrar su nombre en los navegadores comunes del sistema de archivos?

Ivan
fuente

Respuestas:

18

Nautilus (Actualización: esto también debería funcionar con Thunar ahora) ocultará cualquier archivo o carpeta que esté en la lista del archivo .hiddenubicado en el mismo directorio.

Hay dos formas de ocultar una carpeta en Nautilus:

Nautilus script

  1. Guarde el siguiente código en un nuevo archivo en su carpeta de inicio. Nómbralo 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. Ejecute el siguiente comando para instalar el script:

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
    
  3. En Nautilus, seleccione uno o más archivos / carpetas y haga clic derecho. Seleccione Ocultar en el menú Scripts :

    ingrese la descripción de la imagen aquí

    Vuelva a cargar la ubicación actual ( F5) y los archivos / carpetas seleccionados se ocultarán.

Línea de comando

Supongamos que desea ocultar una carpeta llamada "Grandes éxitos de Rick Astley", simplemente ejecute el siguiente comando:

echo "Rick Astley's Greatest Hits" >> .hidden
Isaias
fuente
2
Exactamente un tipo de respuesta que deseaba obtener. Pero, desafortunadamente, no funciona para Thunar.
Ivan
@Ivan, espero que eventualmente lo agreguen, vea el informe de error al que me vinculé en mi respuesta.
Isaías
¿Por qué comillas dobles "ObnoxiousFolder"?
karthick87
Para su información, el informe de error se cerró como WONTFIX (bastante groseramente IMO, ya que ya había un parche, y el responsable del proyecto básicamente dijo "No me importa"). Necesitaremos otra solución ...
waldyrious
La versión reciente de Thunar admite esto, ya que usan GIO para determinar directorios ocultos, y GIO ahora implementa soporte para el .hiddenarchivo.
Brian Campbell
1

Abra synaptic y busque "nautilus-hide", instálelo. Cerrar sesión e iniciar sesión. Ahora haga clic derecho en cualquier archivo o carpeta. Ahora verá una opción "Ocultar" en el menú contextual.

No modificará el nombre pero ocultará la carpeta.

Aprendiz curioso
fuente
0

He modificado buen guión de Alvin ser (con suerte) más Pythonic (y potencialmente más rápido si se añaden muchos archivos, ya que .hiddensólo se abre una vez):

#!/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
fuente