やりたいこと
mkdirやrmコマンドで、複数のディレクトリを同時に操作したい。
なぜなら、できるだけ実行するコマンドを少なくしたいから。
手順
ディレクトリを指定する際、中括弧 {} を使用する。
並列
$ mkdir {dir1,dir2}
dir1とdir2がカレントディレクトリ内に作成される。
$ rm -r {dir1,dir2}
-r により、dir1とdir2がその下の階層含めて全て削除される。
多階層
$ mkdir -p {dir1/dir1-1,dir2/dir2-2}
dir1/dir1-1とdir2/dir2-2がカレントディレクトリ内に作成される。
$ rm -r {dir1/dir1-1,dir2/dir2-2}
dir1/dir1-1とdir2/dir2-2がその下の階層含めて全て削除される。
dir1とdir2そのものはrmの対象に指定されていないので、そのまま残る。
掛け合わせ
$ mkdir -p {dir1,dir2}/{dir1,dir2}
dir1/dir1とdir1/dir2、dir2/dir1とdir2/dir2がカレントディレクトリ内に作成される。
{} が複数ある場合、掛け合わせた全てのパターンが実行される。
$ rm -r {dir1,dir2}/{dir1,dir2}
dir1/dir1とdir1/dir2、dir2/dir1とdir2/dir2とそれらの下の階層が全て削除される。
特定ディレクトリを含む
$ mkdir -p {dir1,dir2}/dir/{dir1,dir2}
dir1/dir/dir1とdir1/dir/dir2、dir2/dir/dir1とdir2/dir/dir2がカレントディレクトリ内に作成される。
$ rm -r {dir1,dir2}/dir/{dir1,dir2}
dir1/dir/dir1とdir1/dir/dir2、dir2/dir/dir1とdir2/dir/dir2とそれらの配下が全て削除される。
どこに{} があろうと、掛け合わせた全てのパターンのコマンドが実行される。