- ベストアンサー
chmodコマンドで、あるディレクトリ以下の"*.sh"ファイル全てに
chmodコマンドで、あるディレクトリ以下の"*.sh"ファイル全てに実行権限を与える方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
find [target_dir] -type f -and -name '*.sh' -exec chmod +x {} \; でどうですか?
その他の回答 (1)
- SaKaKashi
- ベストアンサー率24% (755/3136)
回答No.1
cd ディレクトリ chmod -R +x *.sh
質問者
お礼
ありがとうございます。 しかし、それだと移動した直下に*.shがなければ chmod: cannot access `*.sh': そのようなファイルやディレクトリはありません となります。 下位ディレクトリの.shは無視されます。
お礼
ありがとうございます。 chmodのパラメータをいじくり倒していましたが、うまくいきませんでした。 コマンドの組み合わせですか、 見れば「なるほど」という感じですが、熟練者でないとパッとは出ない手練の技ですね。 ■事前環境確認 # tree test1 test1 |-- dummy.sh |-- t01 | `-- dummy.sh `-- t02 `-- dummy.sh # ls -lR test1 test1: 合計 24 -rw-r--r-- 1 root root 6 10月 8 15:32 dummy.sh drwxr-xr-x 2 root root 4096 10月 8 15:24 t01 drwxr-xr-x 2 root root 4096 10月 8 15:24 t02 test1/t01: 合計 8 -rw-r--r-- 1 root root 6 10月 8 15:24 dummy.sh test1/t02: 合計 8 -rw-r--r-- 1 root root 6 10月 8 15:24 dummy.sh ■実行 # find test1 -type f -and -name '*.sh' -exec chmod +x {} \; ■結果確認 # ls -lR test1 test1: 合計 24 -rwxr-xr-x 1 root root 6 10月 8 15:32 dummy.sh drwxr-xr-x 2 root root 4096 10月 8 15:24 t01 drwxr-xr-x 2 root root 4096 10月 8 15:24 t02 test1/t01: 合計 8 -rwxr-xr-x 1 root root 6 10月 8 15:24 dummy.sh test1/t02: 合計 8 -rwxr-xr-x 1 root root 6 10月 8 15:24 dummy.sh