Estou tentando criar um script bash onde verifico se todos os arquivos de uma pasta específica (/tmp) têm a permissão 755. Também preciso excluir todos os arquivos que não têm o valor de permissão 755.
Eu tentei isso até agora sem sorte:
#!/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###"
Qualquer ajuda que você puder fornecer será muito apreciada! :-)
Responder1
O script a seguir deve fazer o que você deseja: ele é executado no diretório que você está chamando:
#!/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###"
Responder2
Seu script poderia consistir simplesmente em:
#!/bin/bash
echo "Files with 755 permission:"
find . -perm 755
echo "Deleting all other files"
find . -not -perm 755 -delete
echo "Done"
Observe que isso excluirá arquivos do diretório atual e de todos os diretórios abaixo dele. Ele também excluirá qualquer coisa com permissão diferente de 755 sem aviso prévio, portanto, use com cuidado.