【Linux】複数ディレクトリを同時に作成/削除する

やりたいこと

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とそれらの配下が全て削除される。

どこに{} があろうと、掛け合わせた全てのパターンのコマンドが実行される。

コメントを残す

メールアドレスが公開されることはありません。