スポンサーリンク

ファイルのパーミッションを再帰的に変更

※MACターミナル(BSD系)での動作確認です。

例えば、下記のディレクトリ構造とファイルとパーミッションがあったとします。

 $ tree -p
.
└── [drwxr-xr-x]  dir
    ├── [-rw-r--r--]  file01.txt
    └── [drwxr-xr-x]  sub-dir
        ├── [-rw-r--r--]  file02.ex
        └── [-rw-r--r--]  file02.txt

2 directories, 3 files

下記のように-type f を指定することで、dir以下の全てのファイルのパーミッションを775に変更します。

参考:chmodでパーミッションを-rwxrwxr-xに変更

$ find dir -type f -exec chmod 775 {} \;

下記が実行結果になります。
 $ find dir -type f -exec chmod 775 {} \;
 $ tree -p
.
└── [drwxr-xr-x]  dir
    ├── [-rwxrwxr-x]  file01.txt
    └── [drwxr-xr-x]  sub-dir
        ├── [-rwxrwxr-x]  file02.ex
        └── [-rwxrwxr-x]  file02.txt

2 directories, 3 files

スポンサーリンク

ディレクトリのパーミッションを再帰的に変更

下記のように-type d を指定することで、dir以下の全てのディレクトリのパーミッションを777に変更します。

$ find dir -type d -exec chmod 777 {} \;

下記が実行結果になります。
 $ find dir -type d -exec chmod 777 {} \;
 $ tree -p
.
└── [drwxrwxrwx]  dir
    ├── [-rwxrwxr-x]  file01.txt
    └── [drwxrwxrwx]  sub-dir
        ├── [-rwxrwxr-x]  file02.ex
        └── [-rwxrwxr-x]  file02.txt

2 directories, 3 files

他参考です。
参考:findを使って、あるディレクトリ以下のファイルを一箇所に移動mv/コピーcpする方法

findを応用は様々な場面に使うことができます。

使いこなせるようになると、効率も一気にあがります。

今後も応用編をいくつか載せていきたいと思います。

スポンサーリンク