設定:

設定:

誰でも読みやすいようにしたいが実行不可能なディレクトリに複数の階層を持つファイルがある場合は、ファイルのフルパスと権限を変更する必要があります。

これは可能ですが、chmod 755 -R /first/inaccessible/parent/dirそうすると、パスディレクトリ内の他のすべてのファイルの権限が変更され、ファイルを読みたいときにファイル自体が実行可能になります。

Bashでこれを行う簡単な方法はありますか?

ベストアンサー1

1つの方法は次のとおりです。

#! /bin/sh
fname=/full/path/to/file
dir=${fname%/*}
while [ x"$dir" != x ]; do
    chmod 0755 "$dir"
    dir=${dir%/*}
done
chmod 0644 "$fname"

おすすめ記事