Estoy intentando crear un script bash donde verifico si todos los archivos de una carpeta específica (/tmp) tienen el permiso 755. También lo necesito para eliminar todos los archivos que no tienen el valor de permiso 755.
Intenté esto hasta ahora sin suerte:
#!/bin/bash
for filename in 'ls'
do
if [ -perm 0755 "$filename" ]
then echo "Files with 755 permission: $filename"
else rm "$filename"
fi
done
echo "###DONE###"
¡Cualquier ayuda que puede proporcionar será muy apreciada! :-)
Respuesta1
El siguiente script debería hacer lo que usted desea: se ejecuta en el directorio al que lo está llamando:
#!/bin/bash
echo "###START###"
for filename in *
do
if [ $(stat -c "%a" "$filename") == "755" ]
then
echo "Files with 755 permission: $filename"
else
echo "REMOVING: $filename"
rm "$filename"
fi
done
echo "###DONE###"
Respuesta2
Su guión podría consistir simplemente en:
#!/bin/bash
echo "Files with 755 permission:"
find . -perm 755
echo "Deleting all other files"
find . -not -perm 755 -delete
echo "Done"
Tenga en cuenta que eliminará archivos del directorio actual y todos los directorios debajo de él. También eliminará cualquier cosa que tenga un permiso distinto de 755 sin previo aviso, así que utilícelo con cuidado.