¿Cómo puedo ocultar directorios o archivos sin cambiar sus nombres?

51

El OCD en mí quiere que los directorios que no me gustan estén ocultos ya que no interactúo con ellos directamente.

¿Cómo puedo ocultar directorios sin usar la notación de puntos?

myusuf3
fuente

Respuestas:

79

Suponiendo que solo le importa ocultar los archivos para que no aparezcan en nautilus, hay un error en GNOME Bugzilla sobre esto. Sin embargo, actualmente, ese error no se ha resuelto.

Hay otra forma de ocultar que los archivos aparezcan en nautilus. Si crea un archivo llamado .hiddendentro de un directorio, no se mostrará ningún nombre de archivo listado en el archivo.

Por ejemplo, a continuación hay un archivo .hidden que creé. Este archivo ocultará todos los archivos o carpetas nombrados bo eubicados en el mismo directorio que el archivo .hidden.

Archivo .hidden de ejemplo

A continuación se muestra una captura de pantalla de la carpeta que contiene el archivo .hidden. Tenga en cuenta que sólo se ven tres archivos: a, c, y f. No ve el archivo .hidden debido a '.' al comienzo de su nombre. Carpeta de ejemplo

La captura de pantalla a continuación es de la misma carpeta que antes. Sin embargo, esta vez, presioné Ctrl+ Hpara hacer que nautilus muestre carpetas y archivos ocultos. Observe cómo se muestran varios archivos adicionales. Ahora ve varios archivos que anteriormente estaban ocultos debido a que tenían nombres que comenzaron con un '.'. Ahora también hay archivos llamados 'b' y 'e', ​​que aunque no tienen nombres que comienzan con '.', Se ocultaron debido a que figuran en el archivo .hidden.

Carpetas de ejemplo con archivos ocultos visibles

Los archivos mencionados en el archivo .hidden solo se ocultarán en nautilus. Las herramientas como lstodavía los mostrarán. El archivo .hidden tampoco es recursivo. Solo afecta a los archivos en el mismo directorio en el que se encuentra el archivo .hidden.

Algunas personas en el foro han seguido adelante y han creado scripts para nautilus que hacen que sea más fácil agregar archivos al archivo .hidden. El primer script incluye una buena explicación sobre cómo instalar y usar los scripts, pero el segundo script es un poco más limpio y corto. Siéntase libre de usar cualquiera de los guiones para hacer su vida un poco más fácil.

Nhandler
fuente
+1. Solo una nota, SI cree que debe agregar el 'nombre del archivo o carpeta que contiene `` espacio, no lo es. Simplemente agregue el nombre del archivo o carpeta
Anwar
13

Unix y Linux solo admiten carpetas ocultas que están con un ..

Si realmente quiere eliminarlos, pero quiere que no tengan .s, colóquelos .hiddenen el mismo directorio que el archivo o carpeta que desea ocultar. .hiddenno será expuesto por el administrador de archivos, y sus archivos no tendrán un cambio de nombre.

lfaraone
fuente
1
Me
1
Esta solución los mantendrá en su mismo lugar. .hidden ni siquiera tiene que estar en su carpeta de inicio si no quiere que esté. Por lo general, lo uso en unidades extraíbles que tienen archivos de configuración que no quiero ver.
jumpnett
1
@jumpnett es correcto, coloque .hidden en la misma ubicación que los archivos que desea ocultar y agregue los nombres de archivo / directorio en el archivo .hidden, uno por línea. ¡Funciona genial!
invertir
3

Desde la línea de comando, puede intentar algo como esto en su .bash_aliasesarchivo:

lsh() {
    [ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
    [ ! -f .hidden ] && ls $@
}

Esto agrega un nuevo comando lshque se comporta como ls, pero oculta los archivos enumerados en un .hiddendirectorio. (También le faltan algunas de sus características, como salida coloreada y listados de columnas).

qneill
fuente
2

Si desea ocultar archivos, solo le queda renombrarlos con un precedente ., como es la convención * NIX. Lo siento, pero eso es todo.

Sin embargo, si desea ocultar el contenido de los archivos / directorios, puede hacerlo con permisos de archivo.

Digamos que tiene un montón de archivos en una carpeta llamada secret_stash, podría cambiarlo para que solo usted (el propietario) tenga r-x(leer, ejecutar) y todos los demás no tengan nada ---(sin acceso). Dado que r-xson los permisos mínimos necesarios para ver un directorio (leer para acceder a sus contenidos y ejecutar para poder verlos), cualquier cosa dentro de esa carpeta está efectivamente oculta para todos menos root.

NOTA : estoy ejecutando esta demostración como roote intento acceder a la carpeta comomyuser

Para hacer esto, corres chmod 700 dirname(700 medios rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

Y aquí está:

% whoami
root
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash  
./  ../  secret.txt
% cat secret_stash/secret.txt 
TOP SECRET DATA

Ahora y si intento acceder a él myuser, los intentos de acceder a la carpeta o su contenido fallan:

% whoami
myuser
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash 
ls: cannot open directory secret_stash: Permission denied
% cat secret_stash/secret.txt
cat: secret_stash/secret.txt: Permission denied

¡Y ahora he dicho la palabra "secreto" tantas veces que ha perdido todo significado!

jathanism
fuente
2
¡Puedes hacer que esté realmente oculto chmod -R 000 secret_stashy nadie podrá leerlo!
Marco Ceppi
@Marco Ceppi - ¡SEGURIDAD DEFINITIVA!
jathanism
Por supuesto, esto es más "Seguridad" que "Oscuridad", que es lo que el OP estaba buscando, creo;)
Marco Ceppi
2
@MarcoCeppi: chmod 000 ocultará el archivo incluso al propietario del archivo, excepto la raíz, que siempre puede omitir 000. Sin embargo, el propietario del archivo aún puede cambiar el permiso del archivo para leerlo, por lo que debe También cambie la propiedad del archivo a root para que el permiso 000 sea realmente significativo.
Mentira Ryan
2

Primero: si desea ocultar un archivo a alguien: instale un sistema de detección de intrusos de Linux . ( Snort es un ejemplo) Incluso puede ocultar un archivo de "root" pero "root" también podrá revertir esa configuración.


Pero podría ser más fácil simplemente establecer los permisos del directorio que contiene el archivo en "raíz". Ejemplo:

 $ sudo su
 # mkdir tmp/
 # touch tmp/1
 # chown root:root tmp
 # chmod 000 tmp  
 # ls -l
total 4
d--------- 2 root root 4096 2015-08-07 06:36 tmp  
 # exit
exit
 $ ls
tmp
 $ cd tmp/
bash: cd: tmp/: Permission denied

Y el archivo 1está efectivamente oculto a la vista.

El directorio será visible; El archivo no será visible. Tenga en cuenta: "root" SIEMPRE tendrá acceso a cualquier archivo.


Junto con el chattrpuede incluso hacer que el archivo sea inmutable.

sudo su    
chattr + i {file}

e incluso "root" no puede alterar el archivo, a menos que chattrse revierta (y sí, "root" puede hacer eso).

¿Algún atajo de teclado para eso?

No, esto es algo que debe hacer manualmente.

Rinzwind
fuente
0

También hay una extensión para Nautilus llamada nautilus-hide que le permitirá ocultar cualquier archivo o carpeta con un simple clic derecho sobre ellos.

Para instalar esta extensión: sudo apt-get install nautilus-hideen una terminal, o busque "nautilus hide" en el Centro de software de Ubuntu.

No olvide salir de Nautilus después de la instalación: Alt+ F2y escriba nautilus -q.

SNugues
fuente