Ajuda do script Bash, verifique a permissão 755 em todos os arquivos em uma pasta

2

Eu estou tentando criar um script bash onde eu verifico se todos os arquivos de uma pasta específica (/ tmp) têm a permissão 755. Eu também preciso excluir todos os arquivos que não têm 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! : -)

    
por Dracnah 26.04.2016 / 12:36

2 respostas

2

O script a seguir deve fazer o que você deseja: ele é executado no diretório em 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###"
    
por Videonauth 26.04.2016 / 12:52
2

Seu script pode 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 ele excluirá arquivos do diretório atual e de todos os diretórios abaixo dele. Ele também excluirá qualquer coisa com uma permissão diferente de 755 sem aviso, portanto, use com cuidado.

    
por Jos 26.04.2016 / 16:04