Shell Script para listar archivos que tienen permisos de lectura, escritura y ejecución

En este artículo, aprenderemos cómo enumerar todos los archivos en el directorio actual que tienen permiso Red, Write y Execute.

Supongamos que tenemos los siguientes archivos en nuestro directorio actual:

Shell Script to List the Files that have Read, Write and Execute Permissions

Aquí, tenemos un total de 8 archivos en nuestro directorio actual. De 8, tenemos permisos de lectura, escritura y ejecución en 6 archivos y 2 solo tienen permisos de lectura y escritura .

Escribamos el script para Listar los archivos que tienen permisos de lectura, escritura y ejecución

Acercarse :

  • Tenemos que verificar cada archivo en el directorio actual y mostrar el nombre que tiene permiso de lectura, escritura y ejecución,
  • Para recorrer todos los archivos, usaremos for loop

para archivo en *

Aquí, estamos usando * que representan todos los archivos en el directorio de trabajo actual y estamos almacenando el nombre del archivo actual en la variable de archivo.

  • Ahora comprobaremos si el archivo elegido es realmente un archivo o no usando la declaración if
    • Si es un archivo, comprobaremos si tiene permisos de lectura, escritura y ejecución.
    • Usaremos una declaración if para verificar todos los permisos.
      • Si el archivo tiene todos los permisos, imprimiremos el nombre del archivo en la consola.
    • Cierra la sentencia if
  • Si no es un archivo, cerraremos la instrucción if y pasaremos al siguiente archivo.

Antes de seguir adelante, veremos qué hacen estos operadores:

  • -f $archivo -> devuelve verdadero si el archivo existe.
  • -r $archivo -> devuelve verdadero si el archivo tiene permiso de lectura
  • -w $archivo -> devuelve verdadero si el archivo tiene permiso de escritura.
  • -x $archivo -> devuelve verdadero si el archivo tiene permiso de ejecución.
  • -a -> se usa para verificar múltiples condiciones, igual que el operador && .

A continuación se muestra la implementación:

# Shell script to display list of file names
# having read, Write and Execute permission
echo "The name of all files having all permissions :"
  
# loop through all files in current directory
for file in *
do

# check if it is a file
if [ -f $file ]
then

# check if it has all permissions
if [ -r $file -a -w $file -a -x $file ]
then

# print the complete file name with -l option
ls -l $file

# closing second if statement
fi

# closing first if statement
fi

done

Ahora, nuestro trabajo de escritura de código está hecho, pero aún así, no podemos ejecutar nuestro programa porque cuando creamos un archivo en Linux, tiene dos permisos, es decir , lectura y escritura para el usuario que creó el archivo. Para ejecutar nuestro archivo, debemos dar el permiso Ejecutar al archivo.

Asignación de permiso de ejecución a main.sh:

$ chmod 777 main.sh

Shell Script to List the Files that have Read, Write and Execute Permissions

Use el siguiente comando para ejecutar el script:

$ bash main.sh

Shell Script to List the Files that have Read, Write and Execute Permissions

Publicación traducida automáticamente

Artículo escrito por hritikrommie y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *