シェルスクリプトファイルの実行権限を確認して割り当てる方法は?

シェルスクリプトファイルの実行権限を確認して割り当てる方法は?

現在、ディレクトリとまだ実行権限が割り当てられていないサブディレクトリのすべての.shファイルに実行権限を割り当てる.shスクリプトを作成しています。

単一のコマンドで、現在のディレクトリとそのサブディレクトリに含まれるすべての.shファイルに実行権限を簡単に割り当てることができます。

find -type f -iname '*.sh' -exec chmod +x {} \;

上記のコマンドは、現在のディレクトリとサブディレクトリのすべての.shファイルに実行権限を割り当てます。しかし、この.shファイルに実行権限が割り当てられていることを確認するには、条件文のみが必要ですか?それ以外の場合は、ファイルに実行権限を割り当てるコマンドを実行します。

あなたの回答は非常に役に立ち、あなたの答えに非常に感謝します。

ベストアンサー1

探していると思います。-executableオプション、否定する-not

$ ls -l
-rwxrwxr-x ... cmd.sh
-rw-rw-r-- ... foo.txt

$ find . -not -executable
./foo.txt

したがって、あなたの場合は、次のようにすることができます。

find -type f -iname '*.sh' -not -executable -exec chmod +x {} \;

おすすめ記事