ファイルのパーミッションを再帰的に変更
※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を応用は様々な場面に使うことができます。
使いこなせるようになると、効率も一気にあがります。
今後も応用編をいくつか載せていきたいと思います。