¡Hola, este soy yo!

ONeZetty

PIVX Ambassador Caballero Jedi Fanático de Linux Promotor del Software Libre Fundador de Bitcuners Entusiasta de las Criptomonedas Amante de las Galletas y Deslactosado...

9 de abril de 2015

Exclusión a tareas que ejecutes en Bash

  • jueves, abril 09, 2015
  • by

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 ;)


bash


Veamos cómo:



  1. Para cambiar los permisos a que solo el propietario pueda acceder usaremos: chmod 700

  2. Para que le cambie los permisos en todos los archivos de esa carpeta (recuerdo que se llama: archivos) usaremos: archivos/

  3. 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:

exclusion-chmod-bash


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? :D


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 ;)


i-love-bin-bash_by-kzkggaara





Fuente: Desde Linux

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna Veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

Publicar un comentario
ONeZetty
https://t.me/ONeZetty
Cancún, México

Envíame un mensaje

--