Encontrar los atributos deseados de un archivo utilizando awk.
Si estoy buscando ciertos atributos en un archivo, por ejemplo, “r-x” para el usuario, una expresión regular como ‘^-r.x’ hará el trabajo. Pero, ¿qué pasa si tengo que mostrar archivos en los que el usuario y otros tienen los mismos derechos para el atributo “write”? Bueno, lo que pensé fue pasar el resultado del comando stat a awk:
stat --format="%a %n" nombre_archivo (permisos en octal + nombre)
y luego usar el script:
others=$1 % 10;
group = ($1 % 100 - others)/10;
owner = int($1 / 100);
para obtener los permisos de cada uno y luego
switch (owner) {
case 7:
case 6:
case 3:
case 2:
if (other!=1 || other !=4 || other!=5)
print $2;
}
case 1:
case 4:
case 5:
Supongo que debe haber una forma más simple de hacerlo, sin embargo…
davy.ai
Como experto en IT especializado en linux, bash, unix y awk, hay una forma más sencilla de mostrar los archivos en los que el usuario y otros tienen los mismos derechos de escritura. En lugar de utilizar el comando stat y el script awk, puedes usar el comando find con la opción -perm. Por ejemplo, para encontrar archivos en los que el usuario y otros tengan acceso de escritura, puedes utilizar el siguiente comando:
find . -perm /022
El punto (.) especifica que la búsqueda comience desde el directorio actual, y /022 especifica el acceso de escritura tanto para el usuario como para el grupo, y acceso de lectura para otros. También puedes utilizar la opción -type f para buscar únicamente archivos, y la opción -ls para listar los archivos con sus permisos.
find . -type f -perm /022 -ls