• ベストアンサー

chmodコマンドで、あるディレクトリ以下の"*.sh"ファイル全てに

chmodコマンドで、あるディレクトリ以下の"*.sh"ファイル全てに実行権限を与える方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

find [target_dir] -type f -and -name '*.sh' -exec chmod +x {} \; でどうですか?

ngwave
質問者

お礼

ありがとうございます。 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

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

cd ディレクトリ chmod -R +x *.sh

ngwave
質問者

お礼

ありがとうございます。 しかし、それだと移動した直下に*.shがなければ chmod: cannot access `*.sh': そのようなファイルやディレクトリはありません となります。 下位ディレクトリの.shは無視されます。