Script de shell que gera o comando chmod para todos os arquivos

0

No meu servidor EC2 Linux, eu executei cegamente o chmod 777 no diretório que não deveria ter. Existem centenas de arquivos lá, e não tenho certeza de quais precisam voltar às permissões originais. Eu tenho servidor com exatamente as mesmas configurações. Então, eu estou tentando executar um script de shell que gera um comando chmod para cada arquivo no diretório. O plano é pegar os resultados e executá-los em um script de shell na outra máquina.

Eu quero que minha saída seja assim:

sudo chmod ### /somefilepath/
sudo chmod ### /somefilepath/

Meu script de shell agora se parece com:

#!/bin/sh
for file in /opt/bitnami/**
do
  perm = "$(stat --format '%a' "$file")"
  echo 'sudo chmod $perm "$file"'
done

Erros em cada arquivo com o perm não encontrado. O que estou fazendo errado?

Consegui corrigir isso depois da resposta abaixo, o script final é:

#!/bin/sh

FILES=$(find /opt/bitnami/ -name '*')
for file in $FILES
do
  perm=$(stat --format '%a' "$file")
  echo "sudo chmod $perm $file"
done
    
por nmb1106 31.03.2016 / 16:00

1 resposta

2

O espaço em branco é significativo:

spacing = "matters"  # runs spacing. or tries to, anyways
spacing="matters"    # probably more what you want
    
por 31.03.2016 / 16:03