모든 파일에 대한 chmod 명령을 출력하는 쉘 스크립트

모든 파일에 대한 chmod 명령을 출력하는 쉘 스크립트

내 EC2 Linux 서버에서 실행하면 안 되는 디렉터리에서 chmod 777을 맹목적으로 실행했습니다. 거기에는 수백 개의 파일이 있는데 어떤 파일을 원래 권한으로 복원해야 할지 잘 모르겠습니다. 서버를 정확히 동일하게 구성했습니다. 그래서 디렉토리의 각 파일에 대해 chmod 명령을 출력하는 쉘 스크립트를 실행해 보았습니다. 내 계획은 결과를 얻고 이를 다른 컴퓨터의 쉘 스크립트에서 실행하는 것입니다.

내 출력이 다음과 같기를 원합니다.

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

내 쉘 스크립트는 이제 다음과 같습니다.

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

모든 파일에서 오류가 발생하고 perm을 찾을 수 없습니다. 내가 뭘 잘못했나요?

다음 응답 후에 문제를 해결할 수 있었고 최종 스크립트는 다음과 같습니다.

#!/bin/sh

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

답변1

공백이 중요합니다.

spacing = "matters"  # runs spacing. or tries to, anyways
spacing="matters"    # probably more what you want

관련 정보