見つかった各ファイルが指定されたテスト条件を満たしている場合にのみエコーされるようにbashスクリプトのテストを修正しました。

見つかった各ファイルが指定されたテスト条件を満たしている場合にのみエコーされるようにbashスクリプトのテストを修正しました。
for x in $(ls -ll <path to files> | awk '{ print $3,$4 }' | tail -n +2) ; do 
  if [ "${x}" != "root" ] ; then
    echo "Fail"
    break
  else
    echo "Pass"
 fi
done

これで、見つかったすべてのファイルに「パス」を印刷します。次のような場合は「passed」を印刷したいと思います。みんなファイルの所有者はそして、次のような場合は「失敗」を印刷します。どのリスト内のユーザーまたはグループではありません。

ベストアンサー1

すべてのファイルがルートに属し、ルートグループに属していることを確認するには、 find を使用します。

find <path to files> ! -user root -or ! -group root -print

何も返されない場合、ファイルはルートに属していないか、グループルートに属しません。その後、条件を付けて「パス」または「フェイル」を印刷できます。

[[ "$(find <path to files> ! -user root -or ! -group root -print)" == "" ]] && echo "Pass" || echo "Fail"

おすすめ記事