usuario una todos tabla sobre qué propietario permite permisos los especifico dar como comando carpeta cambiar archivos archivo linux bash permissions copy chmod

una - tabla de permisos linux



Copie los permisos de archivos, pero no los archivos (3)

Tengo dos copias del mismo árbol de directorios. Casi tienen los mismos archivos en ambos (una versión puede tener un par de archivos extra o faltantes). Sin embargo, la mayoría de los archivos son comunes a ambos directorios (tienen las mismas rutas relativas y todo).

Supongamos que están en directorios:

version1/ version2/

El problema es que los permisos en la versión 1 / se dañaron, y me gustaría copiar los permisos de la versión 2 /, pero lo hago sin reemplazar los archivos en la versión 1 / que son más nuevos.

¿Hay una forma automatizada de hacer esto a través de bash? (No tiene que ser bash, podría ser algún otro método / lenguaje de programación también).


Deberías echarle un vistazo a la opción --reference para chmod :

chmod --reference version2/somefile version1/somefile

Aplique find y xargs de forma adecuada y debería estar bien, es decir, algo así como

~/version2$ find . -type f | xargs -I {} chmod --reference {} ../version1/{}

Esto incluso funciona recursivamente, y es robusto contra archivos perdidos en el directorio de destino (barra los errores No such file ... , que pueden ser ignorados). Por supuesto, no hará nada con los archivos que solo existen en el directorio de destino.

Aclamaciones,


Podría usar este script (cambia los permisos de forma recursiva pero individual para cada archivo / directorio)

#!/bin/sh chmod --reference $1 $2 if [ -d $1 ] then if [ "x`ls $1`" != "x" ] then for f in `ls $1` do $0 $1/$f $2/$f done fi fi

Ejecute el script con argumentos version2 version1


chmod owner-group-other ./dir or ./file tal vez?

A menos que los permisos sean precisos y diferentes de un archivo a otro, podría hacer un chmod recursivo en el directorio y unificar los permisos.

Ver man chmod para referencias sobre las opciones que podrían ser útiles