A veces necesitamos ejecutar un comando, por ejemplo cambiar los permisos de una carpeta y su contenido, no obstante deseamos que NO se aplique este cambio a un archivo en específico, o a una carpeta en específica… aún cuando se encuentre dentro de la carpeta sobre la cual ejecutamos el comando.
Para que se entienda mejor, tengo una carpeta (archivos) y dentro de ella 4 archivos (doc.txt , file.mp4, lista.txt y tesis.doc), deseo cambiar el permiso de esos archivos para que solo el propietario pueda acceder, hacer eso excepto con lista.txt, que quiero todos puedan ver, o sea, que no cambien sus permisos.
Resumiendo:
- doc.txt , file.mp4 y tesis.doc SOLO podrán ser vistos por el propietario
- lista.txt podrá ser visto por todos, o sea, no quiero que sus permisos varíen.
Para lograr esto puedo cambiar los permisos a todos los archivos y luego, además cambiarle los permisos a lista.txt para que los tenga como antes. Esto serían dos líneas… pero, como casi siempre en Linux, hay una forma de optimizar 😉
Veamos cómo:
- Para cambiar los permisos a que solo el propietario pueda acceder usaremos: chmod 700
- Para que le cambie los permisos en todos los archivos de esa carpeta (recuerdo que se llama: archivos) usaremos: archivos/
- Para excluir el archivo lista.txt usaremos: /!(lista.txt)
O sea el comando final sería:
chmod 700 archivos/!(lista.txt)
Así de simple, aquí les dejo un screenshot de los permisos antes de los archivos de esa carpeta, la ejecución del comando, y luego como quedan los permisos:
En caso de que queramos excluir más de un archivo, por ejemplo lista.txt y además tesis.doc , podemos separar esos archivos con | … o sea:
chmod 700 archivos/!(lista.txt|tesis.doc)
¿A que es simple? 😀
Bueno nada más que agregar, es una sencillez pero que cuando se trabaja con grandes volúmenes de información, puede salvar el día 😉
La verdad nunca se me hubiera ocurrido, lo de excluir aunque a veces me he topado con este dilema, Saludos
Excelente TIP, Saludos
Kaze, soy emilio del ipi cepero bonilla, como estás? Gracias por el artículo, me sirvió cantidad
Hola que tal chaval 😀
Muy bueno !!!!!
gracias por compartilo