为所有文件输出 chmod 命令的 Shell 脚本

为所有文件输出 chmod 命令的 Shell 脚本

在我的 EC2 Linux 服务器上,我盲目地在我不应该运行的目录中运行 chmod 777。那里有数百个文件,我不确定哪些文件需要恢复到原来的权限。我有配置完全相同的服务器。因此,我尝试运行一个 shell 脚本,为目录中的每个文件输出 chmod 命令。我的计划是获取结果并在另一台计算机上的 shell 脚本中执行它们。

我希望我的输出看起来像这样:

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

我的 shell 脚本现在看起来像:

#!/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

相关内容