bash shell recorre el directorio enumerando el contenido y la ejecutabilidad

bash shell recorre el directorio enumerando el contenido y la ejecutabilidad

Actualmente estoy trabajando en una tarea y necesito tomar una ruta de directorio determinada y de esa lista los archivos y directorios que contiene. Al mismo tiempo que incluye si es ejecutable o no. También estoy restringido al no poder usar ningún otro idioma excepto bash.

Mi idea original era usar lly cutobtener lo que necesitaba, pero parecía que no podía hacerlo funcionar. Entonces pensé que me vendría bien algo como (no funciona, sólo una idea)

read input
for f in $input
do
if [[ -x "$f" ]]
then
echo "$f is executable"
else
echo "$f is not executable"
fi
done

Necesito que la salida sea algo así como y no estoy seguro de cómo llegar allí

nombre-archivo1 es ejecutable

nombre-archivo2 no es ejecutable

directorio1 es ejecutable

Respuesta1

prueba me gusta

my=($(ls -la $dr |awk {'print $9'}))  
echo ${my[@]}  
for i in "${my[@]}"  
do  
    if [[ -x "$i" ]]  
    then  
        echo "File '$i' is executable"  
    else  
        echo "File '$i' is not executable or found"  
    fi  
done                   

Respuesta2

Está tomando un directorio y luego verificando si el directorio en sí es ejecutable, y no examina su contenido como desea.

read input
for f in ${input}/*; do
    echo -n "$f is "
    type=""
    if [[ -x "$f" ]]; then
        type="executable"
    else
        type="non-executable"
    fi
    if [[ -d "$f" ]]; then
        type="$type directory"
    fi
    echo "$type"
done

Asegurarme de que el valor de $inputsea un directorio legible es un ejercicio que les dejaré.

información relacionada