すべてのファイルの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

おすすめ記事